//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================

#include "evcarm.h"

EXPENTRY(__dftest)
    MOV pc,lr

EXPENTRY(__subd)
    stmdb     sp!, {r4 - r9, r11, lr}  @ stmfd
    sub       sp, sp, #0x24  @ 0x24 = 36
    mov       r5, #2, 12  @ 0x200000 = 2097152
    str       r3, [sp, #0x20]  @ 0x20 = 32
    str       r2, [sp, #0x1C]  @ 0x1C = 28
    str       r1, [sp, #0x18]  @ 0x18 = 24
    str       r0, [sp, #0x14]  @ 0x14 = 20
    eor       r3, r3, #2, 2  @ 0x80000000 = 2147483648
    b         pp1       @  pc+8+24

EXPENTRY(__addd)
    stmdb     sp!, {r4 - r9, r11, lr}  @ stmfd
    sub       sp, sp, #0x24  @ 0x24 = 36
    mov       r5, #0
    str       r3, [sp, #0x20]  @ 0x20 = 32
    str       r2, [sp, #0x1C]  @ 0x1C = 28
    str       r1, [sp, #0x18]  @ 0x18 = 24
    str       r0, [sp, #0x14]  @ 0x14 = 20
pp1:
    str       r5, [sp, #0x10]  @ 0x10 = 16
    mov       r4, r1, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    beq       pp2       @  pc+8+292
    mov       r4, r3, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    beq       pp3       @  pc+8+404
    movs      r12, r3, lsl #1
    teqeq     r2, #0
    mov       r8, r12, lsl #10
    mov       r3, r12, lsr #20
    mov       r4, r2, lsl #11
    orr       r5, r8, r2, lsr #21
    addne     r3, r3, #0x1E, 22  @ 0x7800 = 30720
    mov       r3, r3, rrx
    orrne     r5, r5, #2, 2  @ 0x80000000 = 2147483648
    movs      r12, r12, asr #21
    addeq     lr, pc, #8
    beq       __fp_norm_op2  @ 100458D4
    cmn       r12, #1
    beq       pp4       @  pc+8+144
    movs      r12, r1, lsl #1
    teqeq     r0, #0
    mov       r8, r12, lsl #10
    mov       r1, r12, lsr #20
    mov       r2, r0, lsl #11
    orr       r0, r8, r0, lsr #21
    addne     r1, r1, #0x1E, 22  @ 0x7800 = 30720
    mov       r1, r1, rrx
    orrne     r0, r0, #2, 2  @ 0x80000000 = 2147483648
    movs      r12, r12, asr #21
    addeq     lr, pc, #8
    beq       __fp_norm_op1  @ 10045814
    cmn       r12, #1
    beq       pp5       @  pc+8+144
    bl        __fp_addsub_common  @ 10045590
    bl        __fp_e2d  @ 1004634C
pp11:
    tst       r3, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x24  @ 0x24 = 36
    ldmeqia   sp!, {r4 - r9, r11, lr}  @ ldmeqfd
    moveq     pc, lr
    ldr       r12, [sp, #0x10]  @ 0x10 = 16
    str       r0, [sp, #8]
    str       r1, [sp, #0xC]  @ 0xC = 12
    ldr       r0, [sp, #0x1C]  @ 0x1C = 28
    ldr       r1, [sp, #0x20]  @ 0x20 = 32
    str       r0, [sp]
    str       r1, [sp, #4]
    ldr       r2, [sp, #0x14]  @ 0x14 = 20
    orr       r1, r3, r12
    ldr       r3, [sp, #0x18]  @ 0x18 = 24
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    ldr       r1, [sp, #0x14]  @ 0x14 = 20
    add       sp, sp, #0x24  @ 0x24 = 36
    ldmia     sp!, {r4 - r9, r11, lr}  @ ldmfd
    mov       pc, lr
pp4:
    orr       r3, r3, #1, 2  @ 0x40000000 = 1073741824
    movs      r12, r1, lsl #1
    teqeq     r0, #0
    mov       r8, r12, lsl #10
    mov       r1, r12, lsr #20
    mov       r2, r0, lsl #11
    orr       r0, r8, r0, lsr #21
    addne     r1, r1, #0x1E, 22  @ 0x7800 = 30720
    mov       r1, r1, rrx
    orrne     r0, r0, #2, 2  @ 0x80000000 = 2147483648
    movs      r12, r12, asr #21
    addeq     lr, pc, #8
    beq       __fp_norm_op1  @ 10045814
    cmn       r12, #1
pp5:
    orreq     r1, r1, #1, 2  @ 0x40000000 = 1073741824
    sub       lr, pc, #0x9C  @ 0x9C = 156
    mov       r11, #2
    b         __fp_addsub_uncommon  @ 10045710
pp2:
    orrs      r4, r0, r1, lsl #12
    beq       pp6       @  pc+8+48
    tst       r1, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
    beq       pp7       @  pc+8+132
    mov       r4, r3, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    bne       pp7       @  pc+8+112
    orrs      r4, r2, r3, lsl #12
    beq       pp7       @  pc+8+104
    tst       r3, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
    b         pp7       @  pc+8+92
pp6:
    movs      r4, r3, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    movne     r3, r5
    bne       pp11      @  pc+8-244
    orrs      r4, r2, r3, lsl #12
    beq       pp12      @  pc+8+16
    mov       r1, r3
    mov       r0, r2
    tst       r3, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
    b         pp7       @  pc+8+40
pp12:
    eors      r4, r1, r3
    movpl     r3, r5
    bpl       pp11      @  pc+8-284
    orr       r5, r5, #1
    b         pp7       @  pc+8+20
pp3:
    mov       r1, r3
    mov       r0, r2
    orrs      r4, r2, r3, lsl #12
    beq       pp11      @  pc+8-308
    tst       r3, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
pp7:
    orr       r1, r1, #0x7F, 8  @ 0x7F000000 = 2130706432
    orr       r1, r1, #0x3E, 14  @ 0xF80000 = 16252928
    mov       r3, r5
    b         pp11      @  pc+8-332

EXPENTRY(__subs)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r1, [sp, #0x14]  @ 0x14 = 20
    mov       lr, #3, 12  @ 0x300000 = 3145728
    str       r0, [sp, #0x10]  @ 0x10 = 16
    b         pp18      @  pc+8+308

EXPENTRY(__adds)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r1, [sp, #0x14]  @ 0x14 = 20
    mov       lr, #1, 12  @ 0x100000 = 1048576
    str       r0, [sp, #0x10]  @ 0x10 = 16
    b         pp19      @  pc+8+4
pp29:
    eor       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    b         pp20      @  pc+8+4
pp19:
    teq       r0, r1
    bmi       pp21      @  pc+8+260
pp20:
    subs      r12, r0, r1
    subcc     r0, r0, r12
    addcc     r1, r1, r12
    mov       r2, r0, lsr #23
    sub       r3, r2, r1, lsr #23
    mov       r12, #0xFF, 8  @ 0xFF000000 = 4278190080
    tst       r12, r1, lsl #1
    teqne     r12, r2, lsl #24
    beq       pp22      @  pc+8+168
    mov       r12, #2, 2  @ 0x80000000 = 2147483648
    orr       r0, r12, r0, lsl #8
    orr       r1, r12, r1, lsl #8
pp27:
    cmp       r3, #0x18  @ 0x18 = 24
    orrge     lr, lr, #0x10  @ 0x10 = 16
    bge       pp23      @  pc+8+8
    rsb       r12, r3, #0x18  @ 0x18 = 24
    movs      r12, r1, lsl r12
    orrne     lr, lr, #0x10  @ 0x10 = 16
pp23:
    adds      r0, r0, r1, lsr r3
    bcs       pp24      @  pc+8+68
    sub       r2, r2, #1
    movs      r0, r0, lsr #8
    adc       r0, r0, r2, lsl #23
    bcc       __fArithReturn  @ 10035E10
    rsb       r3, r3, #0x19  @ 0x19 = 25
    movs      r1, r1, lsl r3
    mov       r12, r0, lsl #1
    cmnne     r12, #1, 8  @ 0x1000000 = 16777216
    bcc       __fArithReturn  @ 10035E10
    biceq     r0, r0, #1
    cmn       r12, #1, 8  @ 0x1000000 = 16777216
    bcc       __fArithReturn  @ 10035E10
pp25:
    orr       lr, lr, #0x14  @ 0x14 = 20
    movs      r0, r0
    mov       r1, #0xFF  @ 0xFF = 255
    mov       r0, r1, lsl #23
    orrmi     r0, r0, #2, 2  @ 0x80000000 = 2147483648
    b         __fArithReturn  @ 10035E10
pp24:
    mov       r0, r0, rrx
    movs      r12, r0, ror #8
    orrmi     lr, lr, #0x10  @ 0x10 = 16
    movs      r0, r0, lsr #8
    adc       r0, r0, r2, lsl #23
    mov       r12, r0, lsl #1
    cmncc     r12, #1, 8  @ 0x1000000 = 16777216
    bcc       __fArithReturn  @ 10035E10
    cmn       r12, #1, 8  @ 0x1000000 = 16777216
    bcs       pp25      @  pc+8-68
    rsb       r3, r3, #0x18  @ 0x18 = 24
    movs      r1, r1, lsl r3
    biceq     r0, r0, #1
    b         __fArithReturn  @ 10035E10
pp22:
    teq       r12, r2, lsl #24
    beq       pp26      @  pc+8+32
    movs      r12, r1, lsl #1
    beq       __fArithReturn  @ 10035E10
    mov       r0, r0, lsl #8
    mov       r1, r1, lsl #8
    tst       r2, #0xFF  @ 0xFF = 255
    orrne     r0, r0, #2, 2  @ 0x80000000 = 2147483648
    subne     r3, r3, #1
    addeq     r2, r2, #1
    b         pp27      @  pc+8-208
pp26:
    movs      r12, r0, lsl #9
    beq       __fArithReturn  @ 10035E10
    b         __fArithNaNCheck  @ 10035E60
pp21:
    eor       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    b         pp28      @  pc+8+4
pp18:
    teq       r0, r1
    bmi       pp29      @  pc+8-300
pp28:
    subs      r12, r0, r1
    eorcc     r12, r12, #2, 2  @ 0x80000000 = 2147483648
    subcc     r0, r0, r12
    addcc     r1, r1, r12
    mov       r2, r0, lsr #23
    sub       r3, r2, r1, lsr #23
    mov       r12, #0xFF, 8  @ 0xFF000000 = 4278190080
    tst       r12, r1, lsl #1
    teqne     r12, r2, lsl #24
    beq       pp30      @  pc+8+288
    orr       r0, r12, r0, lsl #1
    bic       r0, r0, #0xFE, 8  @ 0xFE000000 = 4261412864
    orr       r1, r12, r1, lsl #1
    cmp       r3, #0x20  @ 0x20 = 32
    orrge     lr, lr, #0x10  @ 0x10 = 16
    bge       pp31      @  pc+8+12
    rsb       r12, r3, #0x20  @ 0x20 = 32
    movs      r12, r1, lsl r12
    orrne     lr, lr, #0x10  @ 0x10 = 16
    rsb       r1, r1, #0xFE, 8  @ 0xFE000000 = 4261412864
pp31:
    add       r0, r0, r1, asr r3
    movs      r12, r0, lsl #8
    bcs       pp32      @  pc+8+44
    bpl       pp33      @  pc+8+80
    tst       r2, #0xFE  @ 0xFE = 254
    beq       pp33      @  pc+8+72
    mov       r0, r12, asr #8
    rsbs      r3, r3, #0x21  @ 0x21 = 33
    movls     r3, #1
    movs      r1, r1, lsl r3
    adc       r0, r0, r2, lsl #23
    bcc       __fArithReturn  @ 10035E10
    bne       __fArithReturn  @ 10035E10
    biceq     r0, r0, #1
    b         __fArithReturn  @ 10035E10
pp32:
    movs      r0, r12, lsl #23
    orrne     lr, lr, #0x10  @ 0x10 = 16
    movs      r0, r12, lsr #9
    adc       r0, r0, r2, lsl #23
    bcc       __fArithReturn  @ 10035E10
    rsbs      r3, r3, #0x20  @ 0x20 = 32
    movcss    r1, r1, lsl r3
    bne       __fArithReturn  @ 10035E10
    biceq     r0, r0, #1
    b         __fArithReturn  @ 10035E10
pp33:
    mov       r3, r2, lsr #8
    tst       r0, #0xFF, 16  @ 0xFF0000 = 16711680
    bne       pp35      @  pc+8+20
    movs      r0, r0, lsl #8
    beq       __fArithReturn  @ 10035E10
    sub       r2, r2, #8
    tst       r0, #0xFF, 16  @ 0xFF0000 = 16711680
    moveq     r0, r0, lsl #8
    subeq     r2, r2, #8
pp35:
    tst       r0, #0xF, 12  @ 0xF00000 = 15728640
    moveq     r0, r0, lsl #4
    subeq     r2, r2, #4
    tst       r0, #3, 10  @ 0xC00000 = 12582912
    moveq     r0, r0, lsl #2
    subeq     r2, r2, #2
    cmp       r0, #2, 10  @ 0x800000 = 8388608
    movcc     r0, r0, lsl #1
    sbc       r2, r2, #2
    teq       r3, r2, lsr #8
    addeq     r0, r0, r2, lsl #23
    beq       __fArithReturn  @ 10035E10
    rsb       r2, r2, #0

FUNENTRY(__flt_underflow)
    tst       r2, #0xE0  @ 0xE0 = 224
    orrne     lr, lr, #0x10  @ 0x10 = 16
    mov       r3, r3, lsl #31
    orrs      r3, r3, r0, lsr r2
    bcs       pp36      @  pc+8+16
    rsb       r2, r2, #0x20  @ 0x20 = 32
    movs      r0, r0, lsl r2
    orrne     lr, lr, #0x10  @ 0x10 = 16
    mov       r0, r3
    b         __fArithReturn  @ 10035E10
pp36:
    orr       lr, lr, #0x10  @ 0x10 = 16
    rsb       r2, r2, #0x21  @ 0x21 = 33
    movs      r2, r0, lsl r2
    adc       r0, r3, #0
    biceq     r0, r0, #1
    b         __fArithReturn  @ 10035E10
pp30:
    teq       r12, r2, lsl #24
    beq       pp37      @  pc+8+64
    movs      r12, r0, lsl #1
    moveq     r0, #0
    movs      r1, r1, lsl #1
    beq       __fArithReturn  @ 10035E10
    tst       r2, #0xFF  @ 0xFF = 255
    bic       r0, r12, #0xFF, 8  @ 0xFF000000 = 4278190080
    orrne     r0, r0, #1, 8  @ 0x1000000 = 16777216
    subne     r3, r3, #1
    addeq     r2, r2, #1
    cmp       r3, #0x1F  @ 0x1F = 31
    orrge     lr, lr, #0x10  @ 0x10 = 16
    bge       pp31      @  pc+8-312
    rsb       r12, r3, #0x1F  @ 0x1F = 31
    movs      r12, r1, lsl r12
    orrne     lr, lr, #0x10  @ 0x10 = 16
    rsb       r1, r1, #0
    b         pp31      @  pc+8-332
pp37:
    movs      r12, r0, lsl #9
    bne       __fArithNaNCheck  @ 10035E60
    cmp       r0, r1
    orreq     lr, lr, #1
    orreq     r0, r0, #1, 10  @ 0x400000 = 4194304
    b         __fArithReturn  @ 10035E10

FUNENTRY(__fArithReturn)
    tst       lr, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    mov       r12, #0xFF, 8  @ 0xFF000000 = 4278190080
    tst       r0, r12, lsr #1
    bne       pp40      @  pc+8+4
    tst       lr, #0x10  @ 0x10 = 16
    orrne     lr, lr, #8
pp40:
    str       r0, [sp, #8]
    ldr       r0, [sp, #0x14]  @ 0x14 = 20
    str       r0, [sp]
    ldr       r2, [sp, #0x10]  @ 0x10 = 16
    mov       r1, lr
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

FUNENTRY(__fArithNaNCheck)
    mov       r3, #1, 8  @ 0x1000000 = 16777216
    cmn       r3, r0, lsl #1
    bls       pp41      @  pc+8+20
    tst       r0, #1, 10  @ 0x400000 = 4194304
    orreq     r0, r0, #1, 10  @ 0x400000 = 4194304
    orreq     lr, lr, #1
    beq       __fArithReturn  @ 10035E10
    cmn       r3, r1, lsl #1
    bls       __fArithReturn  @ 10035E10
pp41:
    mov       r0, r1
    tst       r0, #1, 10  @ 0x400000 = 4194304
    orreq     r0, r0, #1, 10  @ 0x400000 = 4194304
    orreq     lr, lr, #1
    b         __fArithReturn  @ 10035E10

EXPENTRY(__cmpd)
    stmdb     sp!, {r4 - r7, lr}  @ stmfd
    mov       r4, r0
    mov       r5, r1
    mov       r6, r2
    mov       r7, r3
    bl        C_SYMBOL_NAME(__eqd)  @ 10036B4C
    movs      r3, r0
    movne     r0, #0
    bne       pp42      @  pc+8+28
    mov       r0, r4
    mov       r1, r5
    mov       r2, r6
    mov       r3, r7
    bl        C_SYMBOL_NAME(__ltd)  @ 10037808
    movs      r3, r0
    mvn       r0, #0
    moveq     r0, #1
pp42:
    ldmia     sp!, {r4 - r7, lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__cmps)
    stmdb     sp!, {r4, r5, lr}  @ stmfd
    mov       r4, r0
    mov       r5, r1
    bl        C_SYMBOL_NAME(__eqs)  @ 10036CC4
    movs      r3, r0
    movne     r0, #0
    bne       pp43      @  pc+8+20
    mov       r0, r4
    mov       r1, r5
    bl        C_SYMBOL_NAME(__lts)  @ 10037928
    movs      r3, r0
    mvn       r0, #0
    moveq     r0, #1
pp43:
    ldmia     sp!, {r4, r5, lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__divd)
    stmdb     sp!, {r4 - r9, r11, lr}  @ stmfd
    sub       sp, sp, #0x20  @ 0x20 = 32
    str       r3, [sp, #0x1C]  @ 0x1C = 28
    str       r2, [sp, #0x18]  @ 0x18 = 24
    str       r1, [sp, #0x14]  @ 0x14 = 20
    str       r0, [sp, #0x10]  @ 0x10 = 16
    mov       r5, #0
    orrs      r4, r0, r1, lsl #1
    beq       pp44      @  pc+8+432
    mov       r4, r1, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    beq       pp45      @  pc+8+472
    orrs      r4, r2, r3, lsl #1
    beq       pp46      @  pc+8+620
    mov       r4, r3, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    beq       pp47      @  pc+8+556
    movs      r12, r3, lsl #1
    teqeq     r2, #0
    beq       pp48      @  pc+8+288
    mov       r8, r12, lsl #10
    mov       r3, r12, lsr #20
    mov       r4, r2, lsl #11
    orr       r5, r8, r2, lsr #21
    addne     r3, r3, #0x1E, 22  @ 0x7800 = 30720
    mov       r3, r3, rrx
    orrne     r5, r5, #2, 2  @ 0x80000000 = 2147483648
    movs      r12, r12, asr #21
    addeq     lr, pc, #8
    beq       __fp_norm_op2  @ 100458D4
    cmn       r12, #1
    beq       pp49      @  pc+8+148
    movs      r12, r1, lsl #1
    teqeq     r0, #0
    beq       pp50      @  pc+8+296
    mov       r8, r12, lsl #10
    mov       r1, r12, lsr #20
    mov       r2, r0, lsl #11
    orr       r0, r8, r0, lsr #21
    addne     r1, r1, #0x1E, 22  @ 0x7800 = 30720
    mov       r1, r1, rrx
    orrne     r0, r0, #2, 2  @ 0x80000000 = 2147483648
    movs      r12, r12, asr #21
    addeq     lr, pc, #8
    beq       __fp_norm_op1  @ 10045814
    cmn       r12, #1
    beq       pp51      @  pc+8+148
    mov       r11, #2
    bl        __fp_div_common  @ 1004660C
    bl        __fp_e2d  @ 1004634C
pp71:
    tst       r3, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x20  @ 0x20 = 32
    ldmeqia   sp!, {r4 - r9, r11, lr}  @ ldmeqfd
    moveq     pc, lr
    str       r0, [sp, #8]
    str       r1, [sp, #0xC]  @ 0xC = 12
    ldr       r0, [sp, #0x18]  @ 0x18 = 24
    ldr       r1, [sp, #0x1C]  @ 0x1C = 28
    str       r0, [sp]
    str       r1, [sp, #4]
    ldr       r2, [sp, #0x10]  @ 0x10 = 16
    orr       r1, r3, #6, 12  @ 0x600000 = 6291456
    ldr       r3, [sp, #0x14]  @ 0x14 = 20
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    ldr       r1, [sp, #0x14]  @ 0x14 = 20
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {r4 - r9, r11, lr}  @ ldmfd
    mov       pc, lr
pp49:
    orr       r3, r3, #1, 2  @ 0x40000000 = 1073741824
    movs      r12, r1, lsl #1
    teqeq     r0, #0
    beq       pp52      @  pc+8+56
    mov       r8, r12, lsl #10
    mov       r1, r12, lsr #20
    mov       r2, r0, lsl #11
    orr       r0, r8, r0, lsr #21
    addne     r1, r1, #0x1E, 22  @ 0x7800 = 30720
    mov       r1, r1, rrx
    orrne     r0, r0, #2, 2  @ 0x80000000 = 2147483648
    movs      r12, r12, asr #21
    addeq     lr, pc, #8
    beq       __fp_norm_op1  @ 10045814
    cmn       r12, #1
pp51:
    orreq     r1, r1, #1, 2  @ 0x40000000 = 1073741824
    sub       lr, pc, #0x9C  @ 0x9C = 156
    mov       r11, #2
    b         __fp_rdv_uncommon  @ 10046AD4
pp52:
    orrs      r12, r4, r5, lsl #1
    beq       pp50      @  pc+8+72
    movs      r5, r5, lsl #1
    bpl       pp54      @  pc+8+44
pp48:
    movs      r12, r1, lsl #1
    teqeq     r0, #0
    beq       pp54      @  pc+8+32
    mvns      r12, r12, asr #20
    ldmeqia   sp!, {r4 - r9, r11, lr}  @ ldmeqfd
    moveq     pc, lr
    teq       r12, #1
    bne       pp56      @  pc+8+20
    orrs      r12, r0, r1, lsl #12
    eoreq     r1, r1, r3
    ldmeqia   sp!, {r4 - r9, r11, lr}  @ ldmeqfd
    moveq     pc, lr
pp54:
    mov       r3, #1
    b         __fp_nonveneer_error  @ 10046C14
pp56:
    mov       r3, #2
    eor       r1, r1, r3
    b         __fp_nonveneer_error  @ 10046C14
pp50:
    eor       r1, r1, r3
    and       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    ldmia     sp!, {r4 - r9, r11, lr}  @ ldmfd
    mov       pc, lr
pp44:
    orrs      r4, r2, r3, lsl #1
    orreq     r5, r5, #1
    beq       pp57      @  pc+8+184
    mov       r4, r3, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    bne       pp58      @  pc+8+212
    orrs      r4, r2, r3, lsl #12
    beq       pp58      @  pc+8+204
    tst       r3, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
    mov       r0, r2
    mov       r1, r3
    b         pp57      @  pc+8+136
pp45:
    orrs      r4, r0, r1, lsl #12
    beq       pp61      @  pc+8+48
    tst       r1, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
    beq       pp57      @  pc+8+116
    mov       r4, r3, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    bne       pp57      @  pc+8+96
    orrs      r4, r2, r3, lsl #12
    beq       pp57      @  pc+8+88
    tst       r3, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
    b         pp57      @  pc+8+76
pp61:
    mov       r4, r3, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    bne       pp66      @  pc+8+76
    orrs      r4, r2, r3, lsl #12
    orreq     r5, r5, #1
    beq       pp57      @  pc+8+44
    mov       r0, r2
    mov       r1, r3
    tst       r3, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
    b         pp57      @  pc+8+24
pp47:
    orrs      r4, r2, r3, lsl #12
    beq       pp58      @  pc+8+64
    tst       r3, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
    mov       r1, r3
    mov       r0, r2
    b         pp57      @  pc+8-4
pp57:
    orr       r1, r1, #0x7F, 8  @ 0x7F000000 = 2130706432
    orr       r1, r1, #0x3E, 14  @ 0xF80000 = 16252928
    mov       r3, r5
    b         pp71      @  pc+8-476
pp46:
    orr       r5, r5, #2
pp66:
    eors      r4, r1, r3
    mov       r0, #0
    mov       r1, #0x7F, 8  @ 0x7F000000 = 2130706432
    orr       r1, r1, #0xF, 12  @ 0xF00000 = 15728640
    orrmi     r1, r1, #2, 2  @ 0x80000000 = 2147483648
    mov       r3, r5
    b         pp71      @  pc+8-508
pp58:
    eors      r4, r1, r3
    mov       r0, #0
    mov       r1, #0
    orrmi     r1, r1, #2, 2  @ 0x80000000 = 2147483648
    mov       r3, r5
    b         pp71      @  pc+8-532
pp800:
    DCD 0x00000000
    DCD 0x04030201
    DCD 0x08070605
    DCD 0x0C0B0A09
    DCD 0x110F0E0D
    DCD 0x15141312
    DCD 0x1A191816
    DCD 0x1F1E1C1B
    DCD 0x24232120
    DCD 0x29282725
    DCD 0x2F2E2C2B
    DCD 0x35333230
    DCD 0x3B393836
    DCD 0x413F3E3C
    DCD 0x47464442
    DCD 0x4E4C4A49
    DCD 0x55535150
    DCD 0x5C5A5857
    DCD 0x6462605E
    DCD 0x6C6A6866
    DCD 0x7472706E
    DCD 0x7D7A7876
    DCD 0x8683817F
    DCD 0x8F8D8A88
    DCD 0x99979492
    DCD 0xA4A19E9C
    DCD 0xAFACA9A6
    DCD 0xBAB7B4B2
    DCD 0xC7C3C0BD
    DCD 0xD4D0CDCA
    DCD 0xE1DEDAD7
    DCD 0xF0ECE9E5
    DCD 0xFFFCF8F4

EXPENTRY(__divs)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r0, [sp, #0x10]  @ 0x10 = 16
    mov       lr, #7, 12  @ 0x700000 = 7340032
    str       r1, [sp, #0x14]  @ 0x14 = 20
    mov       r12, #0xFF, 16  @ 0xFF0000 = 16711680
    ands      r2, r12, r0, lsr #7
    andnes    r3, r12, r1, lsr #7
    cmpne     r2, #0xFF, 16  @ 0xFF0000 = 16711680
    cmpne     r3, #0xFF, 16  @ 0xFF0000 = 16711680
    beq       pp74      @  pc+8+208
    teq       r0, r1
    addmi     r2, r2, #1, 24  @ 0x100 = 256
    orr       r12, r0, #2, 10  @ 0x800000 = 8388608
    orr       r0, r1, #2, 10  @ 0x800000 = 8388608
    bic       r1, r12, #0xFF, 8  @ 0xFF000000 = 4278190080
    bic       r0, r0, #0xFF, 8  @ 0xFF000000 = 4278190080
pp77:
    sub       r2, r2, r3
    cmp       r1, r0
    sub       r12, r0, #0x9A, 18  @ 0x268000 = 2523136
    ldrb      lr, [pc, -r12, lsr #16]
    rsb       r0, r0, #0
    add       lr, lr, #1, 24  @ 0x100 = 256
    mul       r12, r0, lr
    movcc     r1, r1, lsl #1
    mov       r12, r12, asr #4
    mul       r3, r12, lr
    mov       lr, lr, lsl #7
    add       lr, lr, r3, asr #21
    mov       r12, r1, lsr #10
    mul       r12, lr, r12
    mov       r1, r1, lsl #12
    mov       r3, r12, lsr #17
    mla       r1, r0, r3, r1
    add       r2, r2, #0x7D, 16  @ 0x7D0000 = 8192000
    mov       r12, r1, lsr #10
    mul       r12, lr, r12
    mov       r1, r1, lsl #11
    mov       r12, r12, lsr #18
    mla       r1, r0, r12, r1
    adc       r2, r2, r2, asr #16
    cmn       r1, r0
    addcs     r1, r1, r0
    adc       r3, r12, r3, lsl #11
    mov       lr, #7, 12  @ 0x700000 = 7340032
    cmp       r1, #0
    orrne     lr, lr, #0x10  @ 0x10 = 16
    cmn       r0, r1, lsl #1
    adc       r0, r3, r2, lsl #23
    cmpne     r2, #0x3F, 14  @ 0xFC0000 = 16515072
    bcc       __fArithReturn  @ 10035E10
    biceq     r0, r0, #1
    cmp       r2, #0x3F, 14  @ 0xFC0000 = 16515072
    bcc       __fArithReturn  @ 10035E10
    bpl       fmul_fdiv_overflow  @ 10037D3C
    mov       r12, r0, lsl #1
    sub       r12, r12, #1, 8  @ 0x1000000 = 16777216
    cmp       r12, #3, 8  @ 0x3000000 = 50331648
    bcc       __fArithReturn  @ 10035E10
    cmp       r1, #1
    adc       r0, r3, r3
    mvn       r3, r2, lsr #8
    rsb       r2, r2, #1
    b         __flt_underflow  @ 10035D6C
pp74:
    and       r3, r12, r1, lsr #7
    teq       r0, r1
    orrmi     r2, r2, #1, 24  @ 0x100 = 256
    cmp       r2, r12
    cmpcc     r3, r12
    bcs       pp75      @  pc+8+40
    movs      r12, r1, lsl #1
    beq       pp76      @  pc+8+96
    movs      r12, r0, lsl #1
    moveq     r0, r2, lsl #23
    beq       __fArithReturn  @ 10035E10
    add       r12, pc, #0
    b         __flt_normalise2  @ 10046D5C
    mov       r12, r0, lsr #8
    mov       r0, r1, lsr #8
    mov       r1, r12
    b         pp77      @  pc+8-260
pp75:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bhi       __fArithNaNCheck  @ 10035E60
    cmn       r12, r0, lsl #1
    cmneq     r12, r1, lsl #1
    moveq     r0, r2, lsl #23
    orreq     lr, lr, #1
    orreq     r0, r0, #0x7F, 8  @ 0x7F000000 = 2130706432
    orreq     r0, r0, #3, 10  @ 0xC00000 = 12582912
    beq       __fArithReturn  @ 10035E10
    cmn       r12, r1, lsl #1
    moveq     r0, #0
    bicne     r0, r0, #2, 2  @ 0x80000000 = 2147483648
    orr       r0, r0, r2, lsl #23
    b         __fArithReturn  @ 10035E10
pp76:
    movs      r12, r0, lsl #1
    orreq     lr, lr, #1
    orreq     r0, r0, #0x7F, 8  @ 0x7F000000 = 2130706432
    orreq     r0, r0, #3, 10  @ 0xC00000 = 12582912
    orrne     lr, lr, #2
    movne     r0, r2, lsl #23
    orrne     r0, r0, #0x7F, 8  @ 0x7F000000 = 2130706432
    orrne     r0, r0, #2, 10  @ 0x800000 = 8388608
    b         __fArithReturn  @ 10035E10

EXPENTRY(__dtoi)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r1, [sp, #0x14]  @ 0x14 = 20
    orrs      r12, r0, r1, lsl #1
    str       r0, [sp, #0x10]  @ 0x10 = 16
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    movs      r2, r1, lsl #1
    mov       r1, r1, lsl #11
    orr       r1, r1, r0, lsr #21
    mov       r0, r0, lsl #11
    orr       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    bcs       pp78      @  pc+8+100
    mov       r3, #1, 22  @ 0x400 = 1024
    add       r3, r3, #0x1E  @ 0x1E = 30
    subs      r2, r3, r2, lsr #21
    ble       pp79      @  pc+8+28
    cmp       r2, #0x20  @ 0x20 = 32
    bge       pp80      @  pc+8+60
    rsb       r3, r2, #0x20  @ 0x20 = 32
    orrs      r12, r0, r1, lsl r3
    mov       r0, r1, lsr r2
    movne     r3, #0x10  @ 0x10 = 16
    moveq     r3, #0
    b         pp81      @  pc+8+184
pp79:
    rsb       r2, r2, #0
    cmp       r2, #0x20  @ 0x20 = 32
    movge     r1, r0
    movge     r0, #0
    subge     r2, r2, #0x20  @ 0x20 = 32
    mov       r1, r1, lsl r2
    rsb       r2, r2, #0x20  @ 0x20 = 32
    orr       r0, r1, r0, lsr r2
    mov       r3, #1
    b         pp81      @  pc+8+144
pp80:
    bic       r3, r3, #1
    mov       r3, #0x10  @ 0x10 = 16
    mov       r0, #0
    b         pp81      @  pc+8+128
pp78:
    mov       r3, #1, 22  @ 0x400 = 1024
    add       r3, r3, #0x1E  @ 0x1E = 30
    subs      r2, r3, r2, lsr #21
    blt       pp84      @  pc+8+36
    beq       pp85      @  pc+8+76
    cmp       r2, #0x20  @ 0x20 = 32
    bge       pp80      @  pc+8-48
    rsb       r3, r2, #0x20  @ 0x20 = 32
    orrs      r12, r0, r1, lsl r3
    mov       r0, r1, lsr r2
    rsb       r0, r0, #0
    movne     r3, #0x10  @ 0x10 = 16
    moveq     r3, #0
    b         pp81      @  pc+8+72
pp84:
    rsb       r2, r2, #0
    cmp       r2, #0x20  @ 0x20 = 32
    movge     r1, r0
    movge     r0, #0
    subge     r2, r2, #0x20  @ 0x20 = 32
    mov       r1, r1, lsl r2
    rsb       r2, r2, #0x20  @ 0x20 = 32
    orr       r0, r1, r0, lsr r2
    rsb       r0, r0, #0
    mov       r3, #1
    b         pp81      @  pc+8+28
pp85:
    teq       r1, #2, 2  @ 0x80000000 = 2147483648
    movne     r3, #1
    rsbne     r0, r1, #0
    bne       pp81      @  pc+8+12
    cmp       r0, #0
    movne     r3, #0x10  @ 0x10 = 16
    moveq     r3, #0
    mov       r0, r1
pp81:
    tst       r3, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    orr       r1, r3, #2, 10  @ 0x800000 = 8388608
    ldr       r3, [sp, #0x14]  @ 0x14 = 20
    ldr       r2, [sp, #0x10]  @ 0x10 = 16
    str       r0, [sp, #8]
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__dtoi64)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r1, [sp, #0x14]  @ 0x14 = 20
    orrs      r12, r0, r1, lsl #1
    str       r0, [sp, #0x10]  @ 0x10 = 16
    moveq     r1, r0
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    movs      r2, r1, lsl #1
    mov       r1, r1, lsl #11
    orr       r1, r1, r0, lsr #21
    mov       r0, r0, lsl #11
    orr       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    bcs       pp90      @  pc+8+140
    mov       r3, #1, 22  @ 0x400 = 1024
    add       r3, r3, #0x3E  @ 0x3E = 62
    subs      r2, r3, r2, lsr #21
    ble       pp91      @  pc+8+64
    cmp       r2, #0x40  @ 0x40 = 64
    bge       pp92      @  pc+8+100
    mov       r12, #0
    cmp       r2, #0x20  @ 0x20 = 32
    blt       pp93      @  pc+8+12
    mov       r12, r0
    mov       r0, r1
    mov       r1, #0
    sub       r2, r2, #0x20  @ 0x20 = 32
pp93:
    rsb       r3, r2, #0x20  @ 0x20 = 32
    orrs      r12, r12, r0, lsl r3
    mov       r0, r0, lsr r2
    orr       r0, r0, r1, lsl r3
    mov       r1, r1, lsr r2
    movne     r3, #0x10  @ 0x10 = 16
    moveq     r3, #0
    b         pp94      @  pc+8+228
pp91:
    rsb       r2, r2, #0
    cmp       r2, #0x20  @ 0x20 = 32
    movge     r1, r0
    movge     r0, #0
    subge     r2, r2, #0x20  @ 0x20 = 32
    mov       r1, r1, lsl r2
    rsb       r3, r2, #0x20  @ 0x20 = 32
    orr       r1, r1, r0, lsr r3
    mov       r0, r0, lsl r2
    mov       r3, #1
    b         pp94      @  pc+8+184
pp92:
    mov       r3, #0x10  @ 0x10 = 16
    mov       r0, #0
    mov       r1, #0
    b         pp94      @  pc+8+168
pp90:
    mov       r3, #1, 22  @ 0x400 = 1024
    add       r3, r3, #0x3E  @ 0x3E = 62
    subs      r2, r3, r2, lsr #21
    blt       pp97      @  pc+8+76
    beq       pp98      @  pc+8+124
    cmp       r2, #0x40  @ 0x40 = 64
    bge       pp92      @  pc+8-48
    mov       r12, #0
    cmp       r2, #0x20  @ 0x20 = 32
    blt       pp100     @  pc+8+12
    mov       r12, r0
    mov       r0, r1
    mov       r1, #0
    sub       r2, r2, #0x20  @ 0x20 = 32
pp100:
    rsb       r3, r2, #0x20  @ 0x20 = 32
    orrs      r12, r12, r0, lsl r3
    mov       r0, r0, lsr r2
    orr       r0, r0, r1, lsl r3
    mov       r1, r1, lsr r2
    movne     r3, #0x10  @ 0x10 = 16
    moveq     r3, #0
    rsbs      r0, r0, #0
    rsc       r1, r1, #0
    b         pp94      @  pc+8+72
pp97:
    rsb       r2, r2, #0
    cmp       r2, #0x20  @ 0x20 = 32
    movge     r1, r0
    movge     r0, #0
    subge     r2, r2, #0x20  @ 0x20 = 32
    mov       r1, r1, lsl r2
    rsb       r3, r2, #0x20  @ 0x20 = 32
    orr       r1, r1, r0, lsr r3
    mov       r0, r0, lsl r2
    rsbs      r0, r0, #0
    rsc       r1, r1, #0
    mov       r3, #1
    b         pp94      @  pc+8+20
pp98:
    teq       r1, #2, 2  @ 0x80000000 = 2147483648
    teqeq     r0, #0
    moveq     r3, #0
    movne     r3, #1
    rsbs      r0, r0, #0
    rsc       r1, r1, #0
pp94:
    tst       r3, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    orr       r12, r3, #9, 12  @ 0x900000 = 9437184
    ldr       r3, [sp, #0x14]  @ 0x14 = 20
    ldr       r2, [sp, #0x10]  @ 0x10 = 16
    str       r0, [sp, #8]
    str       r1, [sp, #0xC]  @ 0xC = 12
    mov       r1, r12
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    ldr       r1, [sp, #0x14]  @ 0x14 = 20
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__dtos)
    stmdb     sp!, {r4, lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r1, [sp, #0x14]  @ 0x14 = 20
    mov       r4, #0xA, 12  @ 0xA00000 = 10485760
    orrs      r12, r0, r1, lsl #1
    str       r0, [sp, #0x10]  @ 0x10 = 16
    beq       pp103     @  pc+8+156
    and       r2, r1, #2, 2  @ 0x80000000 = 2147483648
    mov       r12, #7, 4  @ 0x70000000 = 1879048192
    rsb       r1, r12, r1, lsl #1
    movs      r3, r1, lsr #21
    beq       pp104     @  pc+8+144
    cmp       r3, #0xFE  @ 0xFE = 254
    bcs       pp105     @  pc+8+36
pp110:
    movs      r12, r0, lsl #3
    orrne     r4, r4, #0x10  @ 0x10 = 16
    orrs      r12, r2, r0, lsr #29
    mov       r3, r0
    adc       r0, r12, r1, lsl #2
    bcc       pp106     @  pc+8+196
    movs      r3, r3, lsl #4
    bne       pp106     @  pc+8+188
    bic       r0, r0, #1
    b         pp106     @  pc+8+180
pp105:
    cmp       r3, #0x12, 26  @ 0x480 = 1152
    bcs       pp104     @  pc+8+88
    cmp       r3, #0xFE  @ 0xFE = 254
    moveq     r12, r1, lsl #11
    orreq     r12, r12, r0, lsr #20
    cmneq     r12, #1, 24  @ 0x100 = 256
    bcc       pp110     @  pc+8-72
    add       r3, r3, #1
    teq       r3, #0x12, 26  @ 0x480 = 1152
    movne     r0, r2
    bne       pp111     @  pc+8+120
    orrs      r12, r0, r1, lsl #11
    moveq     r12, #0xFF, 8  @ 0xFF000000 = 4278190080
    orr       r0, r2, r12, lsr #1
    beq       pp106     @  pc+8+120
    movs      r12, r1, lsl #11
    orrpl     r4, r4, #1
    ldr       r2, [pc, #0xC]  @  pc+8+12 = 10036804
    mov       r12, r1, lsl #2
    orr       r12, r12, r0, lsr #29
    orr       r0, r2, r12
    b         pp106     @  pc+8+92
    DCD 0x7FC00000
pp103:
    mov       r0, r1
    b         pp106     @  pc+8+80
pp104:
    cmp       r3, #0
    subne     r3, r3, #2, 22  @ 0x800 = 2048
    rsb       r3, r3, #9
    rsbs      r12, r3, #0x21  @ 0x21 = 33
    movls     r0, r2
    orrls     r4, r4, #0x18  @ 0x18 = 24
    bls       pp106     @  pc+8+52
    mov       r1, r1, lsl #10
    orr       r1, r1, r0, lsr #21
    orr       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    movs      r12, r1, lsl r12
    orrne     r4, r4, #0x18  @ 0x18 = 24
    adc       r0, r2, r1, lsr r3
    bcc       pp106     @  pc+8+24
    moveqs    r0, r0, lsl #11
    biceq     r0, r0, #1
    b         pp106     @  pc+8+12
pp111:
    orr       r4, r4, #0x14  @ 0x14 = 20
    and       r0, r0, #2, 2  @ 0x80000000 = 2147483648
    mov       r1, #0xFF, 8  @ 0xFF000000 = 4278190080
    orr       r0, r0, r1, lsr #1
pp106:
    tst       r4, #0x1F  @ 0x1F = 31
    mov       r1, r4
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {r4, lr}  @ ldmeqfd
    moveq     pc, lr
    str       r0, [sp, #8]
    ldr       r2, [sp, #0x10]  @ 0x10 = 16
    ldr       r3, [sp, #0x14]  @ 0x14 = 20
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {r4, lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__dtou)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r1, [sp, #0x14]  @ 0x14 = 20
    orrs      r12, r0, r1, lsl #1
    str       r0, [sp, #0x10]  @ 0x10 = 16
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    movs      r2, r1, lsl #1
    mov       r1, r1, lsl #11
    orr       r1, r1, r0, lsr #21
    mov       r0, r0, lsl #11
    orr       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    bcs       pp118     @  pc+8+100
    mov       r3, #1, 22  @ 0x400 = 1024
    add       r3, r3, #0x1E  @ 0x1E = 30
    subs      r2, r3, r2, lsr #21
    blt       pp119     @  pc+8+28
    cmp       r2, #0x20  @ 0x20 = 32
    bge       pp120     @  pc+8+60
    rsb       r3, r2, #0x20  @ 0x20 = 32
    orrs      r12, r0, r1, lsl r3
    mov       r0, r1, lsr r2
    movne     r3, #0x10  @ 0x10 = 16
    moveq     r3, #0
    b         pp121     @  pc+8+132
pp119:
    rsb       r2, r2, #0
    cmp       r2, #0x20  @ 0x20 = 32
    movge     r1, r0
    movge     r0, #0
    subge     r2, r2, #0x20  @ 0x20 = 32
    mov       r1, r1, lsl r2
    rsb       r2, r2, #0x20  @ 0x20 = 32
    orr       r0, r1, r0, lsr r2
    mov       r3, #1
    b         pp121     @  pc+8+92
pp120:
    bic       r3, r3, #1
    mov       r3, #0x10  @ 0x10 = 16
    mov       r0, #0
    b         pp121     @  pc+8+76
pp118:
    mov       r3, #1, 22  @ 0x400 = 1024
    add       r3, r3, #0x1E  @ 0x1E = 30
    subs      r2, r3, r2, lsr #21
    blt       pp124     @  pc+8+20
    cmp       r2, #0x20  @ 0x20 = 32
    bge       pp120     @  pc+8-44
    mov       r0, r1, lsr r2
    rsb       r0, r0, #0
    mov       r3, #1
    b         pp121     @  pc+8+36
pp124:
    rsb       r2, r2, #0
    cmp       r2, #0x20  @ 0x20 = 32
    movge     r1, r0
    movge     r0, #0
    subge     r2, r2, #0x20  @ 0x20 = 32
    mov       r1, r1, lsl r2
    rsb       r2, r2, #0x20  @ 0x20 = 32
    orr       r0, r1, r0, lsr r2
    rsb       r0, r0, #0
    mov       r3, #1
pp121:
    tst       r3, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    orr       r1, r3, #0xB, 12  @ 0xB00000 = 11534336
    ldr       r3, [sp, #0x14]  @ 0x14 = 20
    ldr       r2, [sp, #0x10]  @ 0x10 = 16
    str       r0, [sp, #8]
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__dtou64)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r1, [sp, #0x14]  @ 0x14 = 20
    orrs      r12, r0, r1, lsl #1
    str       r0, [sp, #0x10]  @ 0x10 = 16
    moveq     r1, r0
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    movs      r2, r1, lsl #1
    mov       r1, r1, lsl #11
    orr       r1, r1, r0, lsr #21
    mov       r0, r0, lsl #11
    orr       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    bcs       pp127     @  pc+8+140
    mov       r3, #1, 22  @ 0x400 = 1024
    add       r3, r3, #0x3E  @ 0x3E = 62
    subs      r2, r3, r2, lsr #21
    blt       pp128     @  pc+8+64
    cmp       r2, #0x40  @ 0x40 = 64
    bge       pp129     @  pc+8+100
    mov       r12, #0
    cmp       r2, #0x20  @ 0x20 = 32
    blt       pp130     @  pc+8+12
    mov       r12, r0
    mov       r0, r1
    mov       r1, #0
    sub       r2, r2, #0x20  @ 0x20 = 32
pp130:
    rsb       r3, r2, #0x20  @ 0x20 = 32
    orrs      r12, r12, r0, lsl r3
    mov       r0, r0, lsr r2
    orr       r0, r0, r1, lsl r3
    mov       r1, r1, lsr r2
    movne     r3, #0x10  @ 0x10 = 16
    moveq     r3, #0
    b         pp131     @  pc+8+176
pp128:
    rsb       r2, r2, #0
    cmp       r2, #0x20  @ 0x20 = 32
    movge     r1, r0
    movge     r0, #0
    subge     r2, r2, #0x20  @ 0x20 = 32
    mov       r1, r1, lsl r2
    rsb       r3, r2, #0x20  @ 0x20 = 32
    orr       r1, r1, r0, lsr r3
    mov       r0, r0, lsl r2
    mov       r3, #1
    b         pp131     @  pc+8+132
pp129:
    mov       r3, #0x10  @ 0x10 = 16
    mov       r0, #0
    mov       r1, #0
    b         pp131     @  pc+8+116
pp127:
    mov       r3, #1, 22  @ 0x400 = 1024
    add       r3, r3, #0x3E  @ 0x3E = 62
    subs      r2, r3, r2, lsr #21
    blt       pp134     @  pc+8+52
    cmp       r2, #0x40  @ 0x40 = 64
    bge       pp129     @  pc+8-44
    cmp       r2, #0x20  @ 0x20 = 32
    movge     r0, r1
    movge     r1, #0
    subge     r2, r2, #0x20  @ 0x20 = 32
    rsb       r3, r2, #0x20  @ 0x20 = 32
    mov       r0, r0, lsr r2
    orr       r0, r0, r1, lsl r3
    mov       r1, r1, lsr r2
    rsbs      r0, r0, #0
    rsc       r1, r1, #0
    mov       r3, #1
    b         pp131     @  pc+8+44
pp134:
    rsb       r2, r2, #0
    cmp       r2, #0x20  @ 0x20 = 32
    movge     r1, r0
    movge     r0, #0
    subge     r2, r2, #0x20  @ 0x20 = 32
    mov       r1, r1, lsl r2
    rsb       r3, r2, #0x20  @ 0x20 = 32
    orr       r1, r1, r0, lsr r3
    mov       r0, r0, lsl r2
    rsbs      r0, r0, #0
    rsc       r1, r1, #0
    mov       r3, #1
pp131:
    tst       r3, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    orr       r12, r3, #3, 10  @ 0xC00000 = 12582912
    ldr       r3, [sp, #0x14]  @ 0x14 = 20
    ldr       r2, [sp, #0x10]  @ 0x10 = 16
    str       r0, [sp, #8]
    str       r1, [sp, #0xC]  @ 0xC = 12
    mov       r1, r12
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    ldr       r1, [sp, #0x14]  @ 0x14 = 20
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__eqd)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x20  @ 0x20 = 32
    orrs      r12, r1, r3
    bmi       pp137     @  pc+8+72
    cmn       r12, #1, 12  @ 0x100000 = 1048576
    bmi       pp138     @  pc+8+24
    cmp       r1, r3
    cmpeq     r0, r2
    mov       r0, #0
    moveq     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp138:
    cmn       r1, #1, 12  @ 0x100000 = 1048576
    cmnpl     r3, #1, 12  @ 0x100000 = 1048576
    bmi       pp139     @  pc+8+112
pp143:
    cmp       r1, r3
    cmpeq     r0, r2
    mov       r0, #0
    moveq     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp137:
    cmn       r12, #1, 12  @ 0x100000 = 1048576
    bpl       pp140     @  pc+8+32
    orrs      r12, r0, r1, lsl #1
    orreqs    r12, r2, r3, lsl #1
    cmpne     r3, r1
    cmpeq     r2, r0
    mov       r0, #0
    moveq     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp140:
    mov       r12, #2, 12  @ 0x200000 = 2097152
    cmn       r12, r1, lsl #1
    cmncc     r12, r3, lsl #1
    bcs       pp139     @  pc+8+24
pp144:
    cmp       r3, r1
    cmpeq     r2, r0
    mov       r0, #0
    moveq     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp139:
    mov       r12, #2, 12  @ 0x200000 = 2097152
    cmn       r12, r1, lsl #1
    cmpeq     r0, #0
    cmnls     r12, r3, lsl #1
    cmpeq     r2, #0
    bhi       pp142     @  pc+8+8
    orrs      r12, r1, r3
    bpl       pp143     @  pc+8-152
    b         pp144     @  pc+8-68
pp142:
    mov       r12, #0x7F, 28  @ 0x7F0 = 2032
    orr       r12, r12, #0xF  @ 0xF = 15
    mov       lr, r1, lsl #1
    mov       lr, lr, lsr #21
    cmp       lr, r12
    bne       pp145     @  pc+8+16
    mov       lr, r1, lsl #14
    orrs      lr, lr, r0
    beq       pp145     @  pc+8+4
    tst       r1, #2, 14  @ 0x80000 = 524288
    beq       pp147     @  pc+8+40
pp145:
    mov       lr, r3, lsl #1
    mov       lr, lr, lsr #21
    cmp       lr, r12
    bne       pp148     @  pc+8+16
    mov       lr, r3, lsl #12
    orrs      lr, lr, r2
    beq       pp148     @  pc+8+4
    tst       r3, #2, 14  @ 0x80000 = 524288
    beq       pp147     @  pc+8+4
pp148:
    mov       r0, #3
    b         pp151     @  pc+8+44
pp147:
    str       r2, [sp]
    str       r3, [sp, #4]
    mov       r3, #3
    str       r3, [sp, #8]
    mov       r3, r1
    mov       r2, r0
    mov       r1, #1, 10  @ 0x400000 = 4194304
    orr       r1, r1, #1
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    b         pp151     @  pc+8-4
pp151:
    cmp       r0, #0
    moveq     r0, #1
    movne     r0, #0
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__eqs)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    orrs      r12, r0, r1
    bmi       pp153     @  pc+8+84
    cmn       r12, #2, 10  @ 0x800000 = 8388608
    bmi       pp154     @  pc+8+20
    cmp       r0, r1
    mov       r0, #0
    moveq     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp154:
    cmn       r0, #2, 10  @ 0x800000 = 8388608
    cmnpl     r1, #2, 10  @ 0x800000 = 8388608
    bmi       pp155     @  pc+8+20
pp156:
    cmp       r0, r1
    mov       r0, #0
    moveq     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp155:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bls       pp156     @  pc+8-44
    b         pp157     @  pc+8+72
pp153:
    cmn       r12, #2, 10  @ 0x800000 = 8388608
    bpl       pp158     @  pc+8+24
    movs      r12, r12, lsl #1
    cmpne     r1, r0
    mov       r0, #0
    moveq     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp158:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bhi       pp157     @  pc+8+20
    cmp       r1, r0
    mov       r0, #0
    moveq     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp157:
    mov       lr, r0, lsl #1
    mov       lr, lr, lsr #24
    cmp       lr, #0xFF  @ 0xFF = 255
    bne       pp160     @  pc+8+12
    movs      lr, r0, lsl #9
    beq       pp160     @  pc+8+4
    tst       r0, #1, 10  @ 0x400000 = 4194304
    beq       pp162     @  pc+8+36
pp160:
    mov       lr, r1, lsl #1
    mov       lr, lr, lsr #24
    cmp       lr, #0xFF  @ 0xFF = 255
    bne       pp163     @  pc+8+12
    movs      lr, r1, lsl #9
    beq       pp163     @  pc+8+4
    tst       r1, #1, 10  @ 0x400000 = 4194304
    beq       pp162     @  pc+8+4
pp163:
    mov       r0, #3
    b         pp166     @  pc+8+36
pp162:
    str       r1, [sp]
    mov       r3, #3
    str       r3, [sp, #8]
    mov       r2, r0
    mov       r1, #1
    orr       r1, r1, #5, 12  @ 0x500000 = 5242880
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    b         pp166     @  pc+8-4
pp166:
    cmp       r0, #0
    moveq     r0, #1
    movne     r0, #0
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__ged)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x20  @ 0x20 = 32
    orrs      r12, r1, r3
    bmi       pp168     @  pc+8+72
    cmn       r12, #1, 12  @ 0x100000 = 1048576
    bmi       pp169     @  pc+8+24
    cmp       r1, r3
    cmpeq     r0, r2
    mov       r0, #0
    movcs     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp169:
    cmn       r1, #1, 12  @ 0x100000 = 1048576
    cmnpl     r3, #1, 12  @ 0x100000 = 1048576
    bmi       pp170     @  pc+8+112
pp174:
    cmp       r1, r3
    cmpeq     r0, r2
    mov       r0, #0
    movcs     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp168:
    cmn       r12, #1, 12  @ 0x100000 = 1048576
    bpl       pp171     @  pc+8+32
    orrs      r12, r0, r1, lsl #1
    orreqs    r12, r2, r3, lsl #1
    cmpne     r3, r1
    cmpeq     r2, r0
    mov       r0, #0
    movcs     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp171:
    mov       r12, #2, 12  @ 0x200000 = 2097152
    cmn       r12, r1, lsl #1
    cmncc     r12, r3, lsl #1
    bcs       pp170     @  pc+8+24
pp175:
    cmp       r3, r1
    cmpeq     r2, r0
    mov       r0, #0
    movcs     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp170:
    mov       r12, #2, 12  @ 0x200000 = 2097152
    cmn       r12, r1, lsl #1
    cmpeq     r0, #0
    cmnls     r12, r3, lsl #1
    cmpeq     r2, #0
    bhi       pp173     @  pc+8+8
    orrs      r12, r1, r3
    bpl       pp174     @  pc+8-152
    b         pp175     @  pc+8-68
pp173:
    str       r2, [sp]
    str       r3, [sp, #4]
    mov       r3, #3
    str       r3, [sp, #8]
    mov       r3, r1
    mov       r2, r0
    mov       r1, #1, 10  @ 0x400000 = 4194304
    orr       r1, r1, #1
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x20  @ 0x20 = 32
    b         pp176     @  pc+8-4
pp176:
    cmp       r0, #1
    moveq     r0, #1
    beq       pp177     @  pc+8+8
    cmp       r0, #0
    moveq     r0, #1
    movne     r0, #0
pp177:
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__ges)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    orrs      r12, r0, r1
    bmi       pp178     @  pc+8+84
    cmn       r12, #2, 10  @ 0x800000 = 8388608
    bmi       pp179     @  pc+8+20
    cmp       r0, r1
    mov       r0, #0
    movcs     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp179:
    cmn       r0, #2, 10  @ 0x800000 = 8388608
    cmnpl     r1, #2, 10  @ 0x800000 = 8388608
    bmi       pp180     @  pc+8+20
pp181:
    cmp       r0, r1
    mov       r0, #0
    movcs     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp180:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bls       pp181     @  pc+8-44
    b         pp182     @  pc+8+72
pp178:
    cmn       r12, #2, 10  @ 0x800000 = 8388608
    bpl       pp183     @  pc+8+24
    movs      r12, r12, lsl #1
    cmpne     r1, r0
    mov       r0, #0
    movcs     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp183:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bhi       pp182     @  pc+8+20
    cmp       r1, r0
    mov       r0, #0
    movcs     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp182:
    str       r1, [sp]
    mov       r3, #3
    str       r3, [sp, #8]
    mov       r2, r0
    mov       r1, #1
    orr       r1, r1, #5, 12  @ 0x500000 = 5242880
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x18  @ 0x18 = 24
    b         pp185     @  pc+8-4
pp185:
    cmp       r0, #1
    moveq     r0, #1
    beq       pp186     @  pc+8+8
    cmp       r0, #0
    moveq     r0, #1
    movne     r0, #0
pp186:
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__gtd)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x20  @ 0x20 = 32
    orrs      r12, r1, r3
    bmi       pp187     @  pc+8+72
    cmn       r12, #1, 12  @ 0x100000 = 1048576
    bmi       pp188     @  pc+8+24
    cmp       r1, r3
    cmpeq     r0, r2
    mov       r0, #0
    movhi     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp188:
    cmn       r1, #1, 12  @ 0x100000 = 1048576
    cmnpl     r3, #1, 12  @ 0x100000 = 1048576
    bmi       pp189     @  pc+8+112
pp193:
    cmp       r1, r3
    cmpeq     r0, r2
    mov       r0, #0
    movhi     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp187:
    cmn       r12, #1, 12  @ 0x100000 = 1048576
    bpl       pp190     @  pc+8+32
    orrs      r12, r0, r1, lsl #1
    orreqs    r12, r2, r3, lsl #1
    cmpne     r3, r1
    cmpeq     r2, r0
    mov       r0, #0
    movhi     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp190:
    mov       r12, #2, 12  @ 0x200000 = 2097152
    cmn       r12, r1, lsl #1
    cmncc     r12, r3, lsl #1
    bcs       pp189     @  pc+8+24
pp194:
    cmp       r3, r1
    cmpeq     r2, r0
    mov       r0, #0
    movhi     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp189:
    mov       r12, #2, 12  @ 0x200000 = 2097152
    cmn       r12, r1, lsl #1
    cmpeq     r0, #0
    cmnls     r12, r3, lsl #1
    cmpeq     r2, #0
    bhi       pp192     @  pc+8+8
    orrs      r12, r1, r3
    bpl       pp193     @  pc+8-152
    b         pp194     @  pc+8-68
pp192:
    str       r2, [sp]
    str       r3, [sp, #4]
    mov       r3, #3
    str       r3, [sp, #8]
    mov       r3, r1
    mov       r2, r0
    mov       r1, #1, 10  @ 0x400000 = 4194304
    orr       r1, r1, #1
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x20  @ 0x20 = 32
    b         pp195     @  pc+8-4
pp195:
    cmp       r0, #1
    moveq     r0, #1
    movne     r0, #0
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__gts)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    orrs      r12, r0, r1
    bmi       pp196     @  pc+8+84
    cmn       r12, #2, 10  @ 0x800000 = 8388608
    bmi       pp197     @  pc+8+20
    cmp       r0, r1
    mov       r0, #0
    movhi     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp197:
    cmn       r0, #2, 10  @ 0x800000 = 8388608
    cmnpl     r1, #2, 10  @ 0x800000 = 8388608
    bmi       pp198     @  pc+8+20
pp199:
    cmp       r0, r1
    mov       r0, #0
    movhi     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp198:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bls       pp199     @  pc+8-44
    b         pp200     @  pc+8+72
pp196:
    cmn       r12, #2, 10  @ 0x800000 = 8388608
    bpl       pp201     @  pc+8+24
    movs      r12, r12, lsl #1
    cmpne     r1, r0
    mov       r0, #0
    movhi     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp201:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bhi       pp200     @  pc+8+20
    cmp       r1, r0
    mov       r0, #0
    movhi     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp200:
    str       r1, [sp]
    mov       r3, #3
    str       r3, [sp, #8]
    mov       r2, r0
    mov       r1, #1
    orr       r1, r1, #5, 12  @ 0x500000 = 5242880
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x18  @ 0x18 = 24
    b         pp203     @  pc+8-4
pp203:
    cmp       r0, #1
    moveq     r0, #1
    movne     r0, #0
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__u64tod)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r0, [sp, #0x10]  @ 0x10 = 16
    orrs      r2, r0, r1
    str       r1, [sp, #0x14]  @ 0x14 = 20
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    mov       lr, #6, 10  @ 0x1800000 = 25165824
    mov       r12, #0
    b         pp204     @  pc+8+48

EXPENTRY(__i64tod)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r0, [sp, #0x10]  @ 0x10 = 16
    orrs      r2, r0, r1
    str       r1, [sp, #0x14]  @ 0x14 = 20
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    mov       lr, #0x16, 12  @ 0x1600000 = 23068672
    ands      r12, r1, #2, 2  @ 0x80000000 = 2147483648
    beq       pp204     @  pc+8+4
    rsbs      r0, r0, #0
    rsc       r1, r1, #0
pp204:
    mov       r2, #0
    cmp       r1, #0
    addeq     r2, r2, #0x20  @ 0x20 = 32
    moveq     r1, r0
    moveq     r0, #0
    movs      r3, r1, lsr #16
    addeq     r2, r2, #0x10  @ 0x10 = 16
    moveq     r1, r1, lsl #16
    tst       r1, #0xFF, 8  @ 0xFF000000 = 4278190080
    addeq     r2, r2, #8
    moveq     r1, r1, lsl #8
    tst       r1, #0xF, 4  @ 0xF0000000 = 4026531840
    addeq     r2, r2, #4
    moveq     r1, r1, lsl #4
    tst       r1, #3, 2  @ 0xC0000000 = 3221225472
    addeq     r2, r2, #2
    moveqs    r1, r1, lsl #2
    addpl     r2, r2, #1
    movpl     r1, r1, lsl #1
    mov       r3, #1, 22  @ 0x400 = 1024
    add       r3, r3, #0x3E  @ 0x3E = 62
    rsb       r3, r2, r3
    orr       r12, r12, r3, lsl #20
    cmp       r2, #0x20  @ 0x20 = 32
    mov       r1, r1, lsl #1
    add       r2, r2, #1
    bge       pp206     @  pc+8+8
    rsb       r3, r2, #0x20  @ 0x20 = 32
    orr       r1, r1, r0, lsr r3
    mov       r0, r0, lsl r2
pp206:
    orr       r3, r12, r1, lsr #12
    mov       r2, r1, lsl #20
    orr       r2, r2, r0, lsr #12
    movs      r0, r0, lsl #20
    orrne     lr, lr, #0x10  @ 0x10 = 16
    movs      r0, r0, lsl #1
    bcc       pp207     @  pc+8+12
    movs      r0, r0, lsr #1
    tsteq     r2, #1
    addnes    r2, r2, #1
    adc       r3, r3, #0
pp207:
    mov       r1, r3
    mov       r0, r2
    tst       lr, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    ldr       r2, [sp, #0x10]  @ 0x10 = 16
    ldr       r3, [sp, #0x14]  @ 0x14 = 20
    str       r0, [sp, #8]
    str       r1, [sp, #0xC]  @ 0xC = 12
    add       r0, sp, #0x10  @ 0x10 = 16
    mov       r1, lr
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    ldr       r1, [sp, #0x14]  @ 0x14 = 20
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__u64tos)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r0, [sp, #0x10]  @ 0x10 = 16
    orrs      r2, r0, r1
    str       r1, [sp, #0x14]  @ 0x14 = 20
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    mov       lr, #0x19, 12  @ 0x1900000 = 26214400
    mov       r12, #0
    b         pp208     @  pc+8+48

EXPENTRY(__i64tos)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r0, [sp, #0x10]  @ 0x10 = 16
    orrs      r2, r0, r1
    str       r1, [sp, #0x14]  @ 0x14 = 20
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    mov       lr, #0x17, 12  @ 0x1700000 = 24117248
    ands      r12, r1, #2, 2  @ 0x80000000 = 2147483648
    beq       pp208     @  pc+8+4
    rsbs      r0, r0, #0
    rsc       r1, r1, #0
pp208:
    mov       r2, #0
    cmp       r1, #0
    addeq     r2, r2, #0x20  @ 0x20 = 32
    moveq     r1, r0
    moveq     r0, #0
    movs      r3, r1, lsr #16
    addeq     r2, r2, #0x10  @ 0x10 = 16
    moveq     r1, r1, lsl #16
    tst       r1, #0xFF, 8  @ 0xFF000000 = 4278190080
    addeq     r2, r2, #8
    moveq     r1, r1, lsl #8
    tst       r1, #0xF, 4  @ 0xF0000000 = 4026531840
    addeq     r2, r2, #4
    moveq     r1, r1, lsl #4
    tst       r1, #3, 2  @ 0xC0000000 = 3221225472
    addeq     r2, r2, #2
    moveqs    r1, r1, lsl #2
    addpl     r2, r2, #1
    movpl     r1, r1, lsl #1
    rsb       r3, r2, #0xBE  @ 0xBE = 190
    orr       r12, r12, r3, lsl #23
    cmp       r2, #0x20  @ 0x20 = 32
    mov       r1, r1, lsl #1
    add       r2, r2, #1
    bge       pp210     @  pc+8+12
    rsb       r3, r2, #0x20  @ 0x20 = 32
    orr       r1, r1, r0, lsr r3
    movs      r0, r0, lsl r2
    orrne     r1, r1, #1
pp210:
    orr       r0, r12, r1, lsr #9
    movs      r1, r1, lsl #23
    orrne     lr, lr, #0x10  @ 0x10 = 16
    movs      r1, r1, lsl #1
    bcc       pp211     @  pc+8+4
    tsteq     r0, #1
    addne     r0, r0, #1
pp211:
    tst       lr, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    ldr       r2, [sp, #0x10]  @ 0x10 = 16
    ldr       r3, [sp, #0x14]  @ 0x14 = 20
    str       r0, [sp, #8]
    add       r0, sp, #0x10  @ 0x10 = 16
    mov       r1, lr
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__utod)
    mov       r2, #1, 2  @ 0x40000000 = 1073741824
    b         pp212     @  pc+8+8

EXPENTRY(__itod)
    ands      r2, r0, #2, 2  @ 0x80000000 = 2147483648
    rsbne     r0, r0, #0
    orr       r2, r2, #1, 2  @ 0x40000000 = 1073741824
pp212:
    movs      r1, r0, lsr #16
    addne     r2, r2, #1, 8  @ 0x1000000 = 16777216
    moveqs    r0, r0, lsl #16
    moveq     pc, lr
    tst       r0, #0xFF, 8  @ 0xFF000000 = 4278190080
    addne     r2, r2, #2, 10  @ 0x800000 = 8388608
    moveq     r0, r0, lsl #8
    tst       r0, #0xF, 4  @ 0xF0000000 = 4026531840
    addne     r2, r2, #1, 10  @ 0x400000 = 4194304
    moveq     r0, r0, lsl #4
    tst       r0, #3, 2  @ 0xC0000000 = 3221225472
    addne     r2, r2, #2, 12  @ 0x200000 = 2097152
    moveqs    r0, r0, lsl #2
    addmi     r2, r2, #1, 12  @ 0x100000 = 1048576
    movpl     r0, r0, lsl #1
    mov       r12, r0
    mov       r0, r12, lsl #21
    add       r1, r2, r12, asr #11
    mov       pc, lr

EXPENTRY(__utos)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    mov       r12, r0
    mov       r2, #0x15, 12  @ 0x1500000 = 22020096
    mov       r3, #1, 2  @ 0x40000000 = 1073741824
    b         pp213     @  pc+8+24

EXPENTRY(__itos)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    mov       r12, r0
    mov       r2, #0xD, 12  @ 0xD00000 = 13631488
    ands      r3, r0, #2, 2  @ 0x80000000 = 2147483648
    rsbne     r0, r0, #0
    orr       r3, r3, #1, 2  @ 0x40000000 = 1073741824
pp213:
    movs      r1, r0, lsr #16
    addne     r3, r3, #2, 6  @ 0x8000000 = 134217728
    moveqs    r0, r0, lsl #16
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    tst       r0, #0xFF, 8  @ 0xFF000000 = 4278190080
    addne     r3, r3, #1, 6  @ 0x4000000 = 67108864
    moveq     r0, r0, lsl #8
    tst       r0, #0xF, 4  @ 0xF0000000 = 4026531840
    addne     r3, r3, #2, 8  @ 0x2000000 = 33554432
    moveq     r0, r0, lsl #4
    tst       r0, #3, 2  @ 0xC0000000 = 3221225472
    addne     r3, r3, #1, 8  @ 0x1000000 = 16777216
    moveqs    r0, r0, lsl #2
    addmi     r3, r3, #2, 10  @ 0x800000 = 8388608
    movpl     r0, r0, lsl #1
    movs      r1, r0, lsl #24
    orrne     r2, r2, #0x10  @ 0x10 = 16
    movs      r1, r0, lsl #25
    adc       r0, r3, r0, asr #8
    bcc       pp214     @  pc+8+4
    bne       pp214     @  pc+8+0
    bic       r0, r0, #1
pp214:
    tst       r2, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    str       r0, [sp, #8]
    add       r0, sp, #0x10  @ 0x10 = 16
    mov       r1, r2
    mov       r2, r12
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__led)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x20  @ 0x20 = 32
    orrs      r12, r1, r3
    bmi       pp216     @  pc+8+72
    cmn       r12, #1, 12  @ 0x100000 = 1048576
    bmi       pp217     @  pc+8+24
    cmp       r1, r3
    cmpeq     r0, r2
    mov       r0, #0
    movls     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp217:
    cmn       r1, #1, 12  @ 0x100000 = 1048576
    cmnpl     r3, #1, 12  @ 0x100000 = 1048576
    bmi       pp218     @  pc+8+112
pp222:
    cmp       r1, r3
    cmpeq     r0, r2
    mov       r0, #0
    movls     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp216:
    cmn       r12, #1, 12  @ 0x100000 = 1048576
    bpl       pp219     @  pc+8+32
    orrs      r12, r0, r1, lsl #1
    orreqs    r12, r2, r3, lsl #1
    cmpne     r3, r1
    cmpeq     r2, r0
    mov       r0, #0
    movls     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp219:
    mov       r12, #2, 12  @ 0x200000 = 2097152
    cmn       r12, r1, lsl #1
    cmncc     r12, r3, lsl #1
    bcs       pp218     @  pc+8+24
pp223:
    cmp       r3, r1
    cmpeq     r2, r0
    mov       r0, #0
    movls     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp218:
    mov       r12, #2, 12  @ 0x200000 = 2097152
    cmn       r12, r1, lsl #1
    cmpeq     r0, #0
    cmnls     r12, r3, lsl #1
    cmpeq     r2, #0
    bhi       pp221     @  pc+8+8
    orrs      r12, r1, r3
    bpl       pp222     @  pc+8-152
    b         pp223     @  pc+8-68
pp221:
    str       r2, [sp]
    str       r3, [sp, #4]
    mov       r3, #3
    str       r3, [sp, #8]
    mov       r3, r1
    mov       r2, r0
    mov       r1, #1, 10  @ 0x400000 = 4194304
    orr       r1, r1, #1
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x20  @ 0x20 = 32
    b         pp224     @  pc+8-4
pp224:
    cmp       r0, #2
    moveq     r0, #1
    beq       pp225     @  pc+8+8
    cmp       r0, #0
    moveq     r0, #1
    movne     r0, #0
pp225:
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__les)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    orrs      r12, r0, r1
    bmi       pp226     @  pc+8+84
    cmn       r12, #2, 10  @ 0x800000 = 8388608
    bmi       pp227     @  pc+8+20
    cmp       r0, r1
    mov       r0, #0
    movls     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp227:
    cmn       r0, #2, 10  @ 0x800000 = 8388608
    cmnpl     r1, #2, 10  @ 0x800000 = 8388608
    bmi       pp228     @  pc+8+20
pp229:
    cmp       r0, r1
    mov       r0, #0
    movls     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp228:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bls       pp229     @  pc+8-44
    b         pp230     @  pc+8+72
pp226:
    cmn       r12, #2, 10  @ 0x800000 = 8388608
    bpl       pp231     @  pc+8+24
    movs      r12, r12, lsl #1
    cmpne     r1, r0
    mov       r0, #0
    movls     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp231:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bhi       pp230     @  pc+8+20
    cmp       r1, r0
    mov       r0, #0
    movls     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp230:
    str       r1, [sp]
    mov       r3, #3
    str       r3, [sp, #8]
    mov       r2, r0
    mov       r1, #1
    orr       r1, r1, #5, 12  @ 0x500000 = 5242880
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x18  @ 0x18 = 24
    b         pp233     @  pc+8-4
pp233:
    cmp       r0, #2
    moveq     r0, #1
    beq       pp234     @  pc+8+8
    cmp       r0, #0
    moveq     r0, #1
    movne     r0, #0
pp234:
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__ltd)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x20  @ 0x20 = 32
    orrs      r12, r1, r3
    bmi       pp235     @  pc+8+72
    cmn       r12, #1, 12  @ 0x100000 = 1048576
    bmi       pp236     @  pc+8+24
    cmp       r1, r3
    cmpeq     r0, r2
    mov       r0, #0
    movcc     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp236:
    cmn       r1, #1, 12  @ 0x100000 = 1048576
    cmnpl     r3, #1, 12  @ 0x100000 = 1048576
    bmi       pp237     @  pc+8+112
pp241:
    cmp       r1, r3
    cmpeq     r0, r2
    mov       r0, #0
    movcc     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp235:
    cmn       r12, #1, 12  @ 0x100000 = 1048576
    bpl       pp238     @  pc+8+32
    orrs      r12, r0, r1, lsl #1
    orreqs    r12, r2, r3, lsl #1
    cmpne     r3, r1
    cmpeq     r2, r0
    mov       r0, #0
    movcc     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp238:
    mov       r12, #2, 12  @ 0x200000 = 2097152
    cmn       r12, r1, lsl #1
    cmncc     r12, r3, lsl #1
    bcs       pp237     @  pc+8+24
pp242:
    cmp       r3, r1
    cmpeq     r2, r0
    mov       r0, #0
    movcc     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp237:
    mov       r12, #2, 12  @ 0x200000 = 2097152
    cmn       r12, r1, lsl #1
    cmpeq     r0, #0
    cmnls     r12, r3, lsl #1
    cmpeq     r2, #0
    bhi       pp240     @  pc+8+8
    orrs      r12, r1, r3
    bpl       pp241     @  pc+8-152
    b         pp242     @  pc+8-68
pp240:
    str       r2, [sp]
    str       r3, [sp, #4]
    mov       r3, #3
    str       r3, [sp, #8]
    mov       r3, r1
    mov       r2, r0
    mov       r1, #1, 10  @ 0x400000 = 4194304
    orr       r1, r1, #1
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x20  @ 0x20 = 32
    b         pp243     @  pc+8-4
pp243:
    cmp       r0, #2
    moveq     r0, #1
    movne     r0, #0
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__lts)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    orrs      r12, r0, r1
    bmi       pp244     @  pc+8+84
    cmn       r12, #2, 10  @ 0x800000 = 8388608
    bmi       pp245     @  pc+8+20
    cmp       r0, r1
    mov       r0, #0
    movcc     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp245:
    cmn       r0, #2, 10  @ 0x800000 = 8388608
    cmnpl     r1, #2, 10  @ 0x800000 = 8388608
    bmi       pp246     @  pc+8+20
pp247:
    cmp       r0, r1
    mov       r0, #0
    movcc     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp246:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bls       pp247     @  pc+8-44
    b         pp248     @  pc+8+72
pp244:
    cmn       r12, #2, 10  @ 0x800000 = 8388608
    bpl       pp249     @  pc+8+24
    movs      r12, r12, lsl #1
    cmpne     r1, r0
    mov       r0, #0
    movcc     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp249:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bhi       pp248     @  pc+8+20
    cmp       r1, r0
    mov       r0, #0
    movcc     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp248:
    str       r1, [sp]
    mov       r3, #3
    str       r3, [sp, #8]
    mov       r2, r0
    mov       r1, #1
    orr       r1, r1, #5, 12  @ 0x500000 = 5242880
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x18  @ 0x18 = 24
    b         pp251     @  pc+8-4
pp251:
    cmp       r0, #2
    moveq     r0, #1
    movne     r0, #0
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__muld)
    stmdb     sp!, {r4 - r9, r11, lr}  @ stmfd
    sub       sp, sp, #0x20  @ 0x20 = 32
    str       r3, [sp, #0x1C]  @ 0x1C = 28
    str       r2, [sp, #0x18]  @ 0x18 = 24
    str       r1, [sp, #0x14]  @ 0x14 = 20
    str       r0, [sp, #0x10]  @ 0x10 = 16
    mov       r5, #0
    orrs      r4, r0, r1, lsl #1
    beq       pp252     @  pc+8+316
    mov       r4, r1, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    beq       pp253     @  pc+8+348
    orrs      r4, r2, r3, lsl #1
    beq       pp254     @  pc+8+532
    mov       r4, r3, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    beq       pp255     @  pc+8+440
    movs      r12, r3, lsl #1
    teqeq     r2, #0
    mov       r8, r12, lsl #10
    mov       r3, r12, lsr #20
    mov       r4, r2, lsl #11
    orr       r5, r8, r2, lsr #21
    addne     r3, r3, #0x1E, 22  @ 0x7800 = 30720
    mov       r3, r3, rrx
    orrne     r5, r5, #2, 2  @ 0x80000000 = 2147483648
    movs      r12, r12, asr #21
    addeq     lr, pc, #8
    beq       __fp_norm_op2  @ 100458D4
    cmn       r12, #1
    beq       pp256     @  pc+8+140
    movs      r12, r1, lsl #1
    teqeq     r0, #0
    mov       r8, r12, lsl #10
    mov       r1, r12, lsr #20
    mov       r2, r0, lsl #11
    orr       r0, r8, r0, lsr #21
    addne     r1, r1, #0x1E, 22  @ 0x7800 = 30720
    mov       r1, r1, rrx
    orrne     r0, r0, #2, 2  @ 0x80000000 = 2147483648
    movs      r12, r12, asr #21
    addeq     lr, pc, #8
    beq       __fp_norm_op1  @ 10045814
    cmn       r12, #1
    beq       pp257     @  pc+8+140
    bl        __fp_mult_common  @ 10046DF0
    bl        __fp_e2d  @ 1004634C
pp272:
    tst       r3, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x20  @ 0x20 = 32
    ldmeqia   sp!, {r4 - r9, r11, lr}  @ ldmeqfd
    moveq     pc, lr
    str       r0, [sp, #8]
    str       r1, [sp, #0xC]  @ 0xC = 12
    ldr       r0, [sp, #0x18]  @ 0x18 = 24
    ldr       r1, [sp, #0x1C]  @ 0x1C = 28
    str       r0, [sp]
    str       r1, [sp, #4]
    ldr       r2, [sp, #0x10]  @ 0x10 = 16
    orr       r1, r3, #0xE, 12  @ 0xE00000 = 14680064
    ldr       r3, [sp, #0x14]  @ 0x14 = 20
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    ldr       r1, [sp, #0x14]  @ 0x14 = 20
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {r4 - r9, r11, lr}  @ ldmfd
    mov       pc, lr
pp256:
    orr       r3, r3, #1, 2  @ 0x40000000 = 1073741824
    movs      r12, r1, lsl #1
    teqeq     r0, #0
    mov       r8, r12, lsl #10
    mov       r1, r12, lsr #20
    mov       r2, r0, lsl #11
    orr       r0, r8, r0, lsr #21
    addne     r1, r1, #0x1E, 22  @ 0x7800 = 30720
    mov       r1, r1, rrx
    orrne     r0, r0, #2, 2  @ 0x80000000 = 2147483648
    movs      r12, r12, asr #21
    addeq     lr, pc, #8
    beq       __fp_norm_op1  @ 10045814
    cmn       r12, #1
pp257:
    orreq     r1, r1, #1, 2  @ 0x40000000 = 1073741824
    sub       lr, pc, #0x98  @ 0x98 = 152
    mov       r11, #2
    b         __fp_mult_uncommon  @ 10047078
pp252:
    mov       r4, r3, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    bne       pp254     @  pc+8+220
    orrs      r4, r2, r3, lsl #12
    orreq     r5, r5, #1
    beq       pp259     @  pc+8+164
    mov       r1, r3
    mov       r0, r2
    tst       r1, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
    b         pp259     @  pc+8+144
pp253:
    orrs      r4, r0, r1, lsl #12
    beq       pp261     @  pc+8+48
    tst       r1, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
    beq       pp259     @  pc+8+124
    mov       r4, r3, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    bne       pp259     @  pc+8+104
    orrs      r4, r2, r3, lsl #12
    beq       pp259     @  pc+8+96
    tst       r3, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
    b         pp259     @  pc+8+84
pp261:
    orrs      r4, r2, r3, lsl #1
    orreq     r5, r5, #1
    beq       pp259     @  pc+8+72
    movs      r4, r3, lsl #1
    mov       r4, r4, lsr #21
    add       r4, r4, #1
    cmp       r4, #2, 22  @ 0x800 = 2048
    bne       pp267     @  pc+8+68
    orrs      r4, r2, r3, lsl #12
    beq       pp267     @  pc+8+60
    mov       r1, r3
    mov       r0, r2
    tst       r3, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
    b         pp259     @  pc+8+24
pp255:
    orrs      r4, r2, r3, lsl #12
    beq       pp267     @  pc+8+32
    mov       r1, r3
    mov       r0, r2
    tst       r3, #2, 14  @ 0x80000 = 524288
    orreq     r5, r5, #1
    b         pp259     @  pc+8-4
pp259:
    orr       r1, r1, #0x7F, 8  @ 0x7F000000 = 2130706432
    orr       r1, r1, #0x3E, 14  @ 0xF80000 = 16252928
    mov       r3, r5
    b         pp272     @  pc+8-372
pp267:
    eors      r4, r1, r3
    mov       r0, #0
    mov       r1, #0x7F, 8  @ 0x7F000000 = 2130706432
    orr       r1, r1, #0xF, 12  @ 0xF00000 = 15728640
    orrmi     r1, r1, #2, 2  @ 0x80000000 = 2147483648
    mov       r3, r5
    b         pp272     @  pc+8-400
pp254:
    eors      r4, r1, r3
    mov       r0, #0
    mov       r1, #0
    orrmi     r1, r1, #2, 2  @ 0x80000000 = 2147483648
    mov       r3, r5
    b         pp272     @  pc+8-424

EXPENTRY(__muls)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r0, [sp, #0x10]  @ 0x10 = 16
    mov       lr, #0xF, 12  @ 0xF00000 = 15728640
    str       r1, [sp, #0x14]  @ 0x14 = 20
    mov       r12, #0xFF, 16  @ 0xFF0000 = 16711680
    ands      r2, r12, r0, lsr #7
    andnes    r3, r12, r1, lsr #7
    teqne     r2, r12
    teqne     r3, r12
    beq       pp275     @  pc+8+168
    teq       r0, r1
    orrmi     r2, r2, #1, 24  @ 0x100 = 256
    mov       r12, #2, 2  @ 0x80000000 = 2147483648
    orr       r0, r12, r0, lsl #8
    orr       r1, r12, r1, lsl #8
    add       r2, r2, r3
    umull     r12, r3, r0, r1
    sub       r2, r2, #2, 10  @ 0x800000 = 8388608
    cmp       r12, #0
    orrne     r3, r3, #1
    cmp       r3, #2, 2  @ 0x80000000 = 2147483648
    orrcs     r1, r12, r3, lsl #24
    movcc     r3, r3, lsl #1
    adc       r2, r2, r2, asr #16
    orrs      r1, r12, r3, lsl #25
    orrne     lr, lr, #0x10  @ 0x10 = 16
    movs      r0, r3, lsr #8
    adc       r0, r0, r2, lsl #23
    tstcs     r3, #0x7F  @ 0x7F = 127
    cmpne     r2, #0x3F, 14  @ 0xFC0000 = 16515072
    bcc       __fArithReturn  @ 10035E10
    biceq     r0, r0, #1
    cmp       r2, #0x3F, 14  @ 0xFC0000 = 16515072
    bcc       __fArithReturn  @ 10035E10
    bpl       fmul_fdiv_overflow  @ 10037D3C
    mov       r1, r0, lsl #1
    sub       r1, r1, #1, 8  @ 0x1000000 = 16777216
    cmp       r1, #3, 8  @ 0x3000000 = 50331648
    bcc       __fArithReturn  @ 10035E10
    mov       r0, r3
    mvn       r3, r2, lsr #8
    rsb       r2, r2, #8
    b         __flt_underflow  @ 10035D6C

FUNENTRY(fmul_fdiv_overflow)
    mov       r12, r0, lsl #1
    add       r12, r12, #1, 8  @ 0x1000000 = 16777216
    cmp       r12, #0xFE, 8  @ 0xFE000000 = 4261412864
    bcs       __fArithReturn  @ 10035E10
    subs      r0, r0, r2, lsl #7
    orr       lr, lr, #0x14  @ 0x14 = 20
    mov       r0, #0x7F, 8  @ 0x7F000000 = 2130706432
    orr       r0, r0, #2, 10  @ 0x800000 = 8388608
    orrmi     r0, r0, #2, 2  @ 0x80000000 = 2147483648
    b         __fArithReturn  @ 10035E10
pp275:
    and       r3, r12, r1, lsr #7
    teq       r0, r1
    orrmi     r2, r2, #1, 24  @ 0x100 = 256
    cmp       r2, r12
    cmpcc     r3, r12
    bcs       pp276     @  pc+8+20
    movs      r12, r0, lsl #1
    movnes    r12, r1, lsl #1
    moveq     r0, r2, lsl #23
    beq       __fArithReturn  @ 10035E10
    sub       r12, pc, #0xC8  @ 0xC8 = 200
    b         __flt_normalise2  @ 10046D5C
pp276:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bhi       __fArithNaNCheck  @ 10035E60
    movs      r12, r0, lsl #1
    movnes    r12, r1, lsl #1
    orrne     r2, r2, #0xFF  @ 0xFF = 255
    mov       r0, r2, lsl #23
    orreq     lr, lr, #1
    orreq     r0, r0, #0x7F, 8  @ 0x7F000000 = 2130706432
    orreq     r0, r0, #3, 10  @ 0xC00000 = 12582912
    b         __fArithReturn  @ 10035E10

EXPENTRY(__ned)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x20  @ 0x20 = 32
    orrs      r12, r1, r3
    bmi       pp277     @  pc+8+72
    cmn       r12, #1, 12  @ 0x100000 = 1048576
    bmi       pp278     @  pc+8+24
    cmp       r1, r3
    cmpeq     r0, r2
    mov       r0, #0
    movne     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp278:
    cmn       r1, #1, 12  @ 0x100000 = 1048576
    cmnpl     r3, #1, 12  @ 0x100000 = 1048576
    bmi       pp279     @  pc+8+112
pp283:
    cmp       r1, r3
    cmpeq     r0, r2
    mov       r0, #0
    movne     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp277:
    cmn       r12, #1, 12  @ 0x100000 = 1048576
    bpl       pp280     @  pc+8+32
    orrs      r12, r0, r1, lsl #1
    orreqs    r12, r2, r3, lsl #1
    cmpne     r3, r1
    cmpeq     r2, r0
    mov       r0, #0
    movne     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp280:
    mov       r12, #2, 12  @ 0x200000 = 2097152
    cmn       r12, r1, lsl #1
    cmncc     r12, r3, lsl #1
    bcs       pp279     @  pc+8+24
pp284:
    cmp       r3, r1
    cmpeq     r2, r0
    mov       r0, #0
    movne     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp279:
    mov       r12, #2, 12  @ 0x200000 = 2097152
    cmn       r12, r1, lsl #1
    cmpeq     r0, #0
    cmnls     r12, r3, lsl #1
    cmpeq     r2, #0
    bhi       pp282     @  pc+8+8
    orrs      r12, r1, r3
    bpl       pp283     @  pc+8-152
    b         pp284     @  pc+8-68
pp282:
    mov       r12, #0x7F, 28  @ 0x7F0 = 2032
    orr       r12, r12, #0xF  @ 0xF = 15
    mov       lr, r1, lsl #1
    mov       lr, lr, lsr #21
    cmp       lr, r12
    bne       pp285     @  pc+8+16
    mov       lr, r1, lsl #14
    orrs      lr, lr, r0
    beq       pp285     @  pc+8+4
    tst       r1, #2, 14  @ 0x80000 = 524288
    beq       pp287     @  pc+8+40
pp285:
    mov       lr, r3, lsl #1
    mov       lr, lr, lsr #21
    cmp       lr, r12
    bne       pp288     @  pc+8+16
    mov       lr, r3, lsl #12
    orrs      lr, lr, r2
    beq       pp288     @  pc+8+4
    tst       r3, #2, 14  @ 0x80000 = 524288
    beq       pp287     @  pc+8+4
pp288:
    mov       r0, #3
    b         pp291     @  pc+8+44
pp287:
    str       r2, [sp]
    str       r3, [sp, #4]
    mov       r3, #3
    str       r3, [sp, #8]
    mov       r3, r1
    mov       r2, r0
    mov       r1, #1, 10  @ 0x400000 = 4194304
    orr       r1, r1, #1
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    b         pp291     @  pc+8-4
pp291:
    cmp       r0, #0
    moveq     r0, #0
    movne     r0, #1
    add       sp, sp, #0x20  @ 0x20 = 32
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__negd)
    mvn       r2, r1
    eor       r3, r2, r1
    bic       r3, r3, #2, 2  @ 0x80000000 = 2147483648
    eor       r1, r3, r2
    mov       pc, lr

EXPENTRY(__negs)
    mvn       r1, r0
    eor       r3, r1, r0
    bic       r3, r3, #2, 2  @ 0x80000000 = 2147483648
    eor       r0, r3, r1
    mov       pc, lr

EXPENTRY(__nes)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    orrs      r12, r0, r1
    bmi       pp293     @  pc+8+84
    cmn       r12, #2, 10  @ 0x800000 = 8388608
    bmi       pp294     @  pc+8+20
    cmp       r0, r1
    mov       r0, #0
    movne     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp294:
    cmn       r0, #2, 10  @ 0x800000 = 8388608
    cmnpl     r1, #2, 10  @ 0x800000 = 8388608
    bmi       pp295     @  pc+8+20
pp296:
    cmp       r0, r1
    mov       r0, #0
    movne     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp295:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bls       pp296     @  pc+8-44
    b         pp297     @  pc+8+72
pp293:
    cmn       r12, #2, 10  @ 0x800000 = 8388608
    bpl       pp298     @  pc+8+24
    movs      r12, r12, lsl #1
    cmpne     r1, r0
    mov       r0, #0
    movne     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp298:
    mov       r12, #1, 8  @ 0x1000000 = 16777216
    cmn       r12, r0, lsl #1
    cmnls     r12, r1, lsl #1
    bhi       pp297     @  pc+8+20
    cmp       r1, r0
    mov       r0, #0
    movne     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp297:
    mov       lr, r0, lsl #1
    mov       lr, lr, lsr #24
    cmp       lr, #0xFF  @ 0xFF = 255
    bne       pp300     @  pc+8+12
    movs      lr, r0, lsl #9
    beq       pp300     @  pc+8+4
    tst       r0, #1, 10  @ 0x400000 = 4194304
    beq       pp302     @  pc+8+36
pp300:
    mov       lr, r1, lsl #1
    mov       lr, lr, lsr #24
    cmp       lr, #0xFF  @ 0xFF = 255
    bne       pp303     @  pc+8+12
    movs      lr, r1, lsl #9
    beq       pp303     @  pc+8+4
    tst       r1, #1, 10  @ 0x400000 = 4194304
    beq       pp302     @  pc+8+4
pp303:
    mov       r0, #3
    b         pp306     @  pc+8+36
pp302:
    str       r1, [sp]
    mov       r3, #3
    str       r3, [sp, #8]
    mov       r2, r0
    mov       r1, #1
    orr       r1, r1, #5, 12  @ 0x500000 = 5242880
    add       r0, sp, #0x10  @ 0x10 = 16
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    b         pp306     @  pc+8-4
pp306:
    cmp       r0, #0
    moveq     r0, #0
    movne     r0, #1
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr


//===========================================================
//===========================================================

EXPENTRY(__stod)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    str       r0, [sp, #0x14]  @ 0x14 = 20
    add       r12, r0, #2, 10  @ 0x800000 = 8388608
    tst       r12, #0x7F, 8  @ 0x7F000000 = 2130706432
    beq       pp363     @  pc+8+40
    mov       r12, r0
    mov       r0, r12, lsl #29
    movs      r1, r12, asr #3
    add       r1, r1, #0xE, 6  @ 0x38000000 = 939524096
    addpl     sp, sp, #0x18  @ 0x18 = 24
    ldmplia   sp!, {lr}  @ ldmplfd
    movpl     pc, lr
    sub       r1, r1, #7, 4  @ 0x70000000 = 1879048192
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp363:
    tst       r12, #2, 10  @ 0x800000 = 8388608
    mov       r12, r0
    beq       pp364     @  pc+8+108
    movs      r0, r12, lsl #1
    moveq     r1, r12
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    and       r3, r12, #2, 2  @ 0x80000000 = 2147483648
    add       r1, r3, #0xE, 6  @ 0x38000000 = 939524096
    mov       r0, r12, lsl #9
    movs      r2, r0, lsr #16
    subeq     r1, r1, #1, 8  @ 0x1000000 = 16777216
    moveq     r0, r0, lsl #16
    tst       r0, #0xFF, 8  @ 0xFF000000 = 4278190080
    subeq     r1, r1, #2, 10  @ 0x800000 = 8388608
    moveq     r0, r0, lsl #8
    tst       r0, #0xF, 4  @ 0xF0000000 = 4026531840
    subeq     r1, r1, #1, 10  @ 0x400000 = 4194304
    moveq     r0, r0, lsl #4
    tst       r0, #3, 2  @ 0xC0000000 = 3221225472
    subeq     r1, r1, #2, 12  @ 0x200000 = 2097152
    moveqs    r0, r0, lsl #2
    movpl     r0, r0, lsl #1
    subpl     r1, r1, #1, 12  @ 0x100000 = 1048576
    mov       r0, r0, lsl #1
    orr       r1, r1, r0, lsr #12
    mov       r0, r0, lsl #20
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp364:
    movs      r0, r12, lsl #9
    orreq     r1, r12, #7, 12  @ 0x700000 = 7340032
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    bpl       pp365     @  pc+8+20
    mov       r1, r12, asr #3
    mov       r0, r12, lsl #29
    orr       r1, r1, #7, 4  @ 0x70000000 = 1879048192
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp365:
    ldr       r2, [sp, #0x14]  @ 0x14 = 20
    mov       r1, r12, asr #3
    mov       r0, r12, lsl #29
    orr       r1, r1, #7, 4  @ 0x70000000 = 1879048192
    orr       r1, r1, #2, 14  @ 0x80000 = 524288
    str       r1, [sp, #0xC]  @ 0xC = 12
    str       r0, [sp, #8]
    add       r0, sp, #0x10  @ 0x10 = 16
    mov       r1, #1, 8  @ 0x1000000 = 16777216
    orr       r1, r1, #1
    bl        FPE_Raise  @ 10045994
    ldr       r1, [sp, #0x14]  @ 0x14 = 20
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__stoi)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    movs      r12, r0
    mov       r3, #0x11, 12  @ 0x1100000 = 17825792
    movs      r2, r0, asr #23
    mov       r0, r0, lsl #8
    orr       r0, r0, #2, 2  @ 0x80000000 = 2147483648
    bmi       pp366     @  pc+8+64
    rsbs      r2, r2, #0x9E  @ 0x9E = 158
    ble       pp367     @  pc+8+24
    cmp       r2, #0x20  @ 0x20 = 32
    bge       pp368     @  pc+8+32
    rsb       r1, r2, #0x20  @ 0x20 = 32
    movs      r1, r0, lsl r1
    orrne     r3, r3, #0x10  @ 0x10 = 16
    mov       r0, r0, lsr r2
    b         pp369     @  pc+8+108
pp367:
    orr       r3, r3, #1
    rsb       r2, r2, #0
    mov       r0, r0, lsl r2
    b         pp369     @  pc+8+92
pp368:
    mov       r0, #0
    movs      r1, r12, lsl #1
    orrne     r3, r3, #0x10  @ 0x10 = 16
    b         pp369     @  pc+8+76
pp366:
    and       r2, r2, #0xFF  @ 0xFF = 255
    rsbs      r2, r2, #0x9E  @ 0x9E = 158
    blt       pp372     @  pc+8+32
    beq       pp373     @  pc+8+48
    cmp       r2, #0x20  @ 0x20 = 32
    bge       pp368     @  pc+8-44
    rsb       r1, r2, #0x20  @ 0x20 = 32
    movs      r1, r0, lsl r1
    orrne     r3, r3, #0x10  @ 0x10 = 16
    mov       r0, r0, lsr r2
    rsb       r0, r0, #0
    b         pp369     @  pc+8+28
pp372:
    orr       r3, r3, #1
    rsb       r2, r2, #0
    mov       r0, r0, lsl r2
    rsb       r0, r0, #0
    b         pp369     @  pc+8+8
pp373:
    teq       r0, #2, 2  @ 0x80000000 = 2147483648
    rsb       r0, r0, #0
    orrne     r3, r3, #1
pp369:
    tst       r3, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    str       r0, [sp, #8]
    add       r0, sp, #0x10  @ 0x10 = 16
    mov       r1, r3
    mov       r2, r12
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__stoi64)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    movs      r12, r0
    movs      r2, r0, asr #23
    mov       r0, r0, lsl #8
    orr       r1, r0, #2, 2  @ 0x80000000 = 2147483648
    mov       r0, #0
    bmi       pp377     @  pc+8+104
    rsbs      r2, r2, #0xBE  @ 0xBE = 190
    ble       pp378     @  pc+8+56
    cmp       r2, #0x40  @ 0x40 = 64
    bge       pp379     @  pc+8+64
    cmp       r2, #0x20  @ 0x20 = 32
    subge     r2, r2, #0x20  @ 0x20 = 32
    movge     r0, r1
    movge     r1, #0
    rsb       r2, r2, #0x20  @ 0x20 = 32
    movs      r3, r0, lsl r2
    rsb       r3, r2, #0x20  @ 0x20 = 32
    mov       r0, r0, lsr r3
    orr       r0, r0, r1, lsl r2
    mov       r1, r1, lsr r3
    movne     r3, #0x10  @ 0x10 = 16
    moveq     r3, #0
    b         pp380     @  pc+8+164
pp378:
    rsb       r2, r2, #0
    mov       r3, #1
    mov       r1, r1, lsl r2
    b         pp380     @  pc+8+148
pp379:
    mov       r0, #0
    mov       r1, #0
    movs      r2, r12, lsl #1
    movne     r3, #0x10  @ 0x10 = 16
    moveq     r3, #0
    b         pp380     @  pc+8+124
pp377:
    and       r2, r2, #0xFF  @ 0xFF = 255
    rsbs      r2, r2, #0xBE  @ 0xBE = 190
    blt       pp383     @  pc+8+68
    beq       pp384     @  pc+8+88
    cmp       r2, #0x40  @ 0x40 = 64
    bge       pp379     @  pc+8-52
    cmp       r2, #0x20  @ 0x20 = 32
    subge     r2, r2, #0x20  @ 0x20 = 32
    movge     r0, r1
    movge     r1, #0
    rsb       r2, r2, #0x20  @ 0x20 = 32
    movs      r3, r0, lsl r2
    rsb       r3, r2, #0x20  @ 0x20 = 32
    mov       r0, r0, lsr r3
    orr       r0, r0, r1, lsl r2
    mov       r1, r1, lsr r3
    movne     r3, #0x10  @ 0x10 = 16
    moveq     r3, #0
    rsbs      r0, r0, #0
    rsc       r1, r1, #0
    b         pp380     @  pc+8+40
pp383:
    rsb       r2, r2, #0
    mov       r3, #1
    mov       r1, r1, lsl r2
    rsbs      r0, r0, #0
    rsc       r1, r1, #0
    b         pp380     @  pc+8+16
pp384:
    teq       r1, #2, 2  @ 0x80000000 = 2147483648
    movne     r3, #1
    moveq     r3, #0
    rsbs      r0, r0, #0
    rsc       r1, r1, #0
pp380:
    tst       r3, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    str       r0, [sp, #8]
    str       r1, [sp, #0xC]  @ 0xC = 12
    add       r0, sp, #0x10  @ 0x10 = 16
    orr       r1, r3, #0x12, 12  @ 0x1200000 = 18874368
    mov       r2, r12
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    ldr       r1, [sp, #0x14]  @ 0x14 = 20
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__stou)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    movs      r12, r0
    mov       r3, #0x13, 12  @ 0x1300000 = 19922944
    movs      r2, r0, asr #23
    mov       r0, r0, lsl #8
    orr       r0, r0, #2, 2  @ 0x80000000 = 2147483648
    bmi       pp388     @  pc+8+68
    rsbs      r2, r2, #0x9E  @ 0x9E = 158
    blt       pp389     @  pc+8+24
    cmp       r2, #0x20  @ 0x20 = 32
    bge       pp390     @  pc+8+32
    rsb       r1, r2, #0x20  @ 0x20 = 32
    movs      r1, r0, lsl r1
    orrne     r3, r3, #0x10  @ 0x10 = 16
    mov       r0, r0, lsr r2
    b         pp391     @  pc+8+84
pp389:
    orr       r3, r3, #1
    rsb       r2, r2, #0
    mov       r0, r0, lsl r2
    b         pp391     @  pc+8+68
pp390:
    bic       r3, r3, #1
    mov       r0, #0
    movs      r1, r12, lsl #1
    orrne     r3, r3, #0x10  @ 0x10 = 16
    b         pp391     @  pc+8+48
pp388:
    orr       r3, r3, #1
    and       r2, r2, #0xFF  @ 0xFF = 255
    rsbs      r2, r2, #0x9E  @ 0x9E = 158
    blt       pp394     @  pc+8+16
    cmp       r2, #0x20  @ 0x20 = 32
    bge       pp390     @  pc+8-48
    mov       r0, r0, lsr r2
    rsb       r0, r0, #0
    b         pp391     @  pc+8+12
pp394:
    rsb       r2, r2, #0
    mov       r0, r0, lsl r2
    rsb       r0, r0, #0
    b         pp391     @  pc+8-4
pp391:
    tst       r3, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    str       r0, [sp, #8]
    add       r0, sp, #0x10  @ 0x10 = 16
    mov       r1, r3
    mov       r2, r12
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

EXPENTRY(__stou64)
    stmdb     sp!, {lr}  @ stmfd
    sub       sp, sp, #0x18  @ 0x18 = 24
    movs      r12, r0
    movs      r2, r0, asr #23
    mov       r0, r0, lsl #8
    orr       r1, r0, #2, 2  @ 0x80000000 = 2147483648
    mov       r0, #0
    bmi       pp398     @  pc+8+104
    rsbs      r2, r2, #0xBE  @ 0xBE = 190
    blt       pp399     @  pc+8+56
    cmp       r2, #0x40  @ 0x40 = 64
    bge       pp400     @  pc+8+64
    cmp       r2, #0x20  @ 0x20 = 32
    subge     r2, r2, #0x20  @ 0x20 = 32
    movge     r0, r1
    movge     r1, #0
    rsb       r2, r2, #0x20  @ 0x20 = 32
    movs      r3, r0, lsl r2
    rsb       r3, r2, #0x20  @ 0x20 = 32
    mov       r0, r0, lsr r3
    orr       r0, r0, r1, lsl r2
    mov       r1, r1, lsr r3
    movne     r3, #0x10  @ 0x10 = 16
    moveq     r3, #0
    b         pp401     @  pc+8+132
pp399:
    rsb       r2, r2, #0
    mov       r3, #1
    mov       r1, r1, lsl r2
    b         pp401     @  pc+8+116
pp400:
    mov       r0, #0
    mov       r1, #0
    movs      r2, r12, lsl #1
    movne     r3, #0x10  @ 0x10 = 16
    moveq     r3, #0
    b         pp401     @  pc+8+92
pp398:
    and       r2, r2, #0xFF  @ 0xFF = 255
    rsbs      r2, r2, #0xBE  @ 0xBE = 190
    ble       pp404     @  pc+8+56
    cmp       r2, #0x40  @ 0x40 = 64
    bge       pp400     @  pc+8-48
    cmp       r2, #0x20  @ 0x20 = 32
    subge     r2, r2, #0x20  @ 0x20 = 32
    movge     r0, r1
    movge     r1, #0
    rsb       r2, r2, #0x20  @ 0x20 = 32
    rsb       r3, r2, #0x20  @ 0x20 = 32
    mov       r0, r0, lsr r3
    orr       r0, r0, r1, lsl r2
    mov       r1, r1, lsr r3
    rsbs      r0, r0, #0
    rsc       r1, r1, #0
    mov       r3, #1
    b         pp401     @  pc+8+20
pp404:
    mov       r3, #1
    rsb       r2, r2, #0
    mov       r1, r1, lsl r2
    rsbs      r0, r0, #0
    rsc       r1, r1, #0
    b         pp401     @  pc+8-4
pp401:
    tst       r3, #0x1F  @ 0x1F = 31
    addeq     sp, sp, #0x18  @ 0x18 = 24
    ldmeqia   sp!, {lr}  @ ldmeqfd
    moveq     pc, lr
    str       r0, [sp, #8]
    str       r1, [sp, #0xC]  @ 0xC = 12
    add       r0, sp, #0x10  @ 0x10 = 16
    orr       r1, r3, #5, 10  @ 0x1400000 = 20971520
    mov       r2, r12
    bl        FPE_Raise  @ 10045994
    ldr       r0, [sp, #0x10]  @ 0x10 = 16
    ldr       r1, [sp, #0x14]  @ 0x14 = 20
    add       sp, sp, #0x18  @ 0x18 = 24
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

//---------------------------------------------------
//---------------------------------------------------
//---------------------------------------------------

FUNENTRY(__fp_addsub_common)
    stmdb     sp!, {lr}  @ stmfd
    mov       r6, r1, lsl #17
    subs      r8, r6, r3, lsl #17
    eor       lr, r1, r3
    and       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    mov       r3, r6, lsr #17
    bhi       pp408     @  pc+8+104
    moveq     r9, r8
    beq       pp409     @  pc+8+184
    rsb       r6, r8, #0
    mov       r6, r6, lsr #17
    add       r3, r3, r6
    mov       r9, r6, lsr #5
    bic       r6, r6, r9, lsl #5
    cmp       r9, #2
    teqcc     r9, #0
    rsb       r9, r6, #0x20  @ 0x20 = 32
    mov       r8, r2, lsl r9
    mov       r2, r2, lsr r6
    orr       r2, r2, r0, lsl r9
    mov       r0, r0, lsr r6
    beq       pp410     @  pc+8+12
    orrne     r8, r8, r8, lsl #2
    orrne     r8, r2, r8, lsr #2
    movne     r2, r0
    movne     r0, #0
pp410:
    bcc       pp411     @  pc+8+16
    orrcs     r8, r8, r2
    orrcs     r8, r8, r8, lsl #2
    orrcs     r8, r0, r8, lsr #2
    movcs     r2, #0
    movcs     r0, #0
pp411:
    mov       r9, #0
    b         pp409     @  pc+8+84
pp408:
    mov       r6, r8, lsr #17
    mov       r8, r6, lsr #5
    bic       r6, r6, r8, lsl #5
    cmp       r8, #2
    teqcc     r8, #0
    rsb       r8, r6, #0x20  @ 0x20 = 32
    mov       r9, r4, lsl r8
    mov       r4, r4, lsr r6
    orr       r4, r4, r5, lsl r8
    mov       r5, r5, lsr r6
    beq       pp413     @  pc+8+12
    orrne     r9, r9, r9, lsl #2
    orrne     r9, r4, r9, lsr #2
    movne     r4, r5
    movne     r5, #0
pp413:
    bcc       pp414     @  pc+8+16
    orrcs     r9, r9, r4
    orrcs     r9, r9, r9, lsl #2
    orrcs     r9, r5, r9, lsr #2
    movcs     r4, #0
    movcs     r5, #0
pp414:
    mov       r8, #0
pp409:
    tst       lr, #2, 2  @ 0x80000000 = 2147483648
    bne       pp415     @  pc+8+44
    adds      r6, r8, r9
    adcs      r2, r2, r4
    adcs      r0, r0, r5
    ldmccia   sp!, {lr}  @ ldmccfd
    movcc     pc, lr
    add       r3, r3, #1
    movs      r0, r0, rrx
    movs      r2, r2, rrx
    orr       r6, r6, r6, lsl #1
    mov       r6, r6, rrx
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp415:
    subs      r6, r8, r9
    sbcs      r2, r2, r4
    sbcs      r0, r0, r5
    bcs       pp416     @  pc+8+12
    eor       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    rsbs      r6, r6, #0
    rscs      r2, r2, #0
    rsc       r0, r0, #0
pp416:
    tst       r0, #2, 2  @ 0x80000000 = 2147483648
    ldmneia   sp!, {lr}  @ ldmnefd
    movne     pc, lr
    adds      r6, r6, r6
    adcs      r2, r2, r2
    adc       r0, r0, r0
    sub       r3, r3, #1
    tst       r0, #2, 2  @ 0x80000000 = 2147483648
    ldmneia   sp!, {lr}  @ ldmnefd
    movne     pc, lr
    orrs      lr, r0, r2
    blne      __fp_normalise_op1  @ 1004D748
    ldmneia   sp!, {lr}  @ ldmnefd
    movne     pc, lr
    mov       r1, #0
    mov       r0, #0
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr

FUNENTRY(__fp_addsub_uncommon)
    mov       r9, r3, lsl #17
    cmn       r9, #2, 16  @ 0x20000 = 131072
    andcc     r9, r9, r5
    ands      r9, r9, r3, lsl #1
    mov       r8, r1, lsl #17
    cmn       r8, #2, 16  @ 0x20000 = 131072
    andcc     r8, r8, r0
    ands      r8, r8, r1, lsl #1
    bmi       pp417     @  pc+8+88
    tst       r9, #2, 2  @ 0x80000000 = 2147483648
    bne       pp418     @  pc+8+144
    stmdb     sp!, {lr}  @ stmfd
    ands      r6, r0, r1, lsl #1
    bicmi     r0, r0, #2, 2  @ 0x80000000 = 2147483648
    addmi     r1, r1, #1
    ands      r6, r5, r3, lsl #1
    bicmi     r5, r5, #2, 2  @ 0x80000000 = 2147483648
    addmi     r3, r3, #1
    tst       r1, #1, 2  @ 0x40000000 = 1073741824
    movnes    r6, r1, lsl #17
    blne      __fp_norm_denorm_op1  @ 1004D554
    tst       r3, #1, 2  @ 0x40000000 = 1073741824
    movnes    r6, r3, lsl #17
    blne      __fp_norm_denorm_op2  @ 1004D63C
    bl        __fp_addsub_common  @ 10045590
    tst       r0, #2, 2  @ 0x80000000 = 2147483648
    ldmneia   sp!, {lr}  @ ldmnefd
    movne     pc, lr
    orrs      lr, r0, r2
    blne      __fp_normalise_op1  @ 1004D748
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
pp417:
    tst       r9, #2, 2  @ 0x80000000 = 2147483648
    beq       pp419     @  pc+8+36
    orr       r8, r2, r0, lsl #1
    orr       r8, r8, r4
    orrs      r8, r8, r5, lsl #1
    bne       __fp_convert_NaNs  @ 1004D480
    eor       r8, r3, r11, lsl #10
    eors      r8, r8, r1
    andpl     r8, r1, #2, 2  @ 0x80000000 = 2147483648
    bpl       pp420     @  pc+8+40
    orr       r1, r1, #1
    mov       pc, lr
pp419:
    orrs      r8, r2, r0, lsl #1
    bne       __fp_convert_NaN_1Of2  @ 1004D4C4
    and       r8, r1, #2, 2  @ 0x80000000 = 2147483648
    b         pp420     @  pc+8+16
pp418:
    orrs      r8, r4, r5, lsl #1
    bne       __fp_convert_NaN_2Of2  @ 1004D4A0
    and       r8, r3, #2, 2  @ 0x80000000 = 2147483648
    tst       r11, #2, 12  @ 0x200000 = 2097152
    eorne     r8, r8, #2, 2  @ 0x80000000 = 2147483648
pp420:
    tst       r11, #1, 12  @ 0x100000 = 1048576
    eorne     r8, r8, #2, 2  @ 0x80000000 = 2147483648
    add       r1, pc, #0x14  @ 0x14 = 20
    ldmia     r1, {r0 - r2}  @ ldmfd
    orr       r1, r1, r8
    mov       pc, lr
    DCD 0x00000000
    DCD 0x00000000
    DCD 0x00000000
    DCD 0x40007FFF
    DCD 0x00000000
    DCD 0x00000000

FUNENTRY(__fp_norm_op1)
    tst       r0, #2, 2  @ 0x80000000 = 2147483648
    moveq     pc, lr
    stmdb     sp!, {r3, lr}  @ stmfd
    bics      r0, r0, #2, 2  @ 0x80000000 = 2147483648
    beq       pp422     @  pc+8+84
    movs      r3, r0, lsr #16
    moveq     r0, r0, lsl #16
    moveq     r12, #0x10  @ 0x10 = 16
    movne     r12, #0
    movs      r3, r0, lsr #24
    moveq     r0, r0, lsl #8
    addeq     r12, r12, #8
    movs      r3, r0, lsr #28
    moveq     r0, r0, lsl #4
    addeq     r12, r12, #4
    movs      r3, r0, lsr #30
    moveq     r0, r0, lsl #2
    addeq     r12, r12, #2
    movs      r3, r0, lsr #31
    moveq     r0, r0, lsl #1
    addeq     r12, r12, #1
    rsb       r3, r12, #0x20  @ 0x20 = 32
    orr       r0, r0, r2, lsr r3
    mov       r2, r2, lsl r12
    sub       r1, r1, r12
    add       r1, r1, #1
    ldmia     sp!, {r3, pc}  @ ldmfd
pp422:
    movs      r3, r2, lsr #16
    moveq     r2, r2, lsl #16
    moveq     r12, #0x10  @ 0x10 = 16
    movne     r12, #0
    movs      r3, r2, lsr #24
    moveq     r2, r2, lsl #8
    addeq     r12, r12, #8
    movs      r3, r2, lsr #28
    moveq     r2, r2, lsl #4
    addeq     r12, r12, #4
    movs      r3, r2, lsr #30
    moveq     r2, r2, lsl #2
    addeq     r12, r12, #2
    movs      r3, r2, lsr #31
    moveq     r2, r2, lsl #1
    addeq     r12, r12, #1
    mov       r0, r2
    mov       r2, #0
    sub       r1, r1, #0x1F  @ 0x1F = 31
    sub       r1, r1, r12
    ldmia     sp!, {r3, pc}  @ ldmfd

FUNENTRY(__fp_norm_op2)
    tst       r5, #2, 2  @ 0x80000000 = 2147483648
    moveq     pc, lr
    stmdb     sp!, {r1, lr}  @ stmfd
    bics      r5, r5, #2, 2  @ 0x80000000 = 2147483648
    beq       pp423     @  pc+8+84
    movs      r1, r5, lsr #16
    moveq     r5, r5, lsl #16
    moveq     r12, #0x10  @ 0x10 = 16
    movne     r12, #0
    movs      r1, r5, lsr #24
    moveq     r5, r5, lsl #8
    addeq     r12, r12, #8
    movs      r1, r5, lsr #28
    moveq     r5, r5, lsl #4
    addeq     r12, r12, #4
    movs      r1, r5, lsr #30
    moveq     r5, r5, lsl #2
    addeq     r12, r12, #2
    movs      r1, r5, lsr #31
    moveq     r5, r5, lsl #1
    addeq     r12, r12, #1
    rsb       r1, r12, #0x20  @ 0x20 = 32
    orr       r5, r5, r4, lsr r1
    mov       r4, r4, lsl r12
    sub       r3, r3, r12
    add       r3, r3, #1
    ldmia     sp!, {r1, pc}  @ ldmfd
pp423:
    movs      r1, r4, lsr #16
    moveq     r4, r4, lsl #16
    moveq     r12, #0x10  @ 0x10 = 16
    movne     r12, #0
    movs      r1, r4, lsr #24
    moveq     r4, r4, lsl #8
    addeq     r12, r12, #8
    movs      r1, r4, lsr #28
    moveq     r4, r4, lsl #4
    addeq     r12, r12, #4
    movs      r1, r4, lsr #30
    moveq     r4, r4, lsl #2
    addeq     r12, r12, #2
    movs      r1, r4, lsr #31
    moveq     r4, r4, lsl #1
    addeq     r12, r12, #1
    mov       r5, r4
    mov       r4, #0
    sub       r3, r3, #0x1F  @ 0x1F = 31
    sub       r3, r3, r12
    ldmia     sp!, {r1, pc}  @ ldmfd

FUNENTRY(FPE_Raise)
.equ dd10, 0xeb00070e
    mov       r12, sp
    stmdb     sp!, {r0 - r3}  @ stmfd
    stmdb     sp!, {r4 - r12, lr}  @ stmfd
    sub       sp, sp, #0x60  @ 0x60 = 96
    str       r0, [sp, #0x88]  @ 0x88 = 136
    add       lr, sp, #8
    mov       r0, r1, lsr #20
    ldr     r11, =dd10  @ unknown data is saved in r11
    str       lr, [sp]
    and       r10, r0, #0x1F  @ 0x1F = 31
    ands      r9, r1, #1
    mov        r0, r11 @ ldr       r0, [r11]
    mov       lr, #0x40  @ 0x40 = 64
    str       r2, [sp, #0x90]  @ 0x90 = 144
    moveq     lr, #0
    str       r3, [sp, #0x94]  @ 0x94 = 148
    orr       lr, lr, r0
    ands      r8, r1, #2
    mov       r0, #0x20  @ 0x20 = 32
    moveq     r0, #0
    orr       lr, r0, lr
    ands      r7, r1, #4
    mov       r0, #0x10  @ 0x10 = 16
    moveq     r0, #0
    orr       lr, r0, lr
    ands      r5, r1, #8
    mov       r0, #8
    moveq     r0, #0
    orr       lr, r0, lr
    ands      r4, r1, #0x10  @ 0x10 = 16
    mov       r0, #4
    moveq     r0, #0
    orr       r6, r0, lr
    cmp       r9, #0
    mov       r11, r6 @ str       r6, [r11]
    andnes    r1, r6, #2, 22  @ 0x800 = 2048
    movne     r0, #3, 2  @ 0xC0000000 = 3221225472
    orrne     r0, r0, #0x90  @ 0x90 = 144
    bne       pp424     @  pc+8+80
    cmp       r8, #0
    andnes    r1, r6, #1, 22  @ 0x400 = 1024
    movne     r0, #3, 2  @ 0xC0000000 = 3221225472
    orrne     r0, r0, #0x8E  @ 0x8E = 142
    bne       pp424     @  pc+8+60
    cmp       r7, #0
    andnes    r1, r6, #2, 24  @ 0x200 = 512
    movne     r0, #3, 2  @ 0xC0000000 = 3221225472
    orrne     r0, r0, #0x91  @ 0x91 = 145
    bne       pp424     @  pc+8+40
    cmp       r5, #0
    andnes    r1, r6, #1, 24  @ 0x100 = 256
    movne     r0, #3, 2  @ 0xC0000000 = 3221225472
    orrne     r0, r0, #0x93  @ 0x93 = 147
    bne       pp424     @  pc+8+20
    cmp       r4, #0
    beq       pp428     @  pc+8+2156
    ands      r1, r6, #0x80  @ 0x80 = 128
    beq       pp428     @  pc+8+2148
    mov       r0, #3, 2  @ 0xC0000000 = 3221225472
    orr       r0, r0, #0x8F  @ 0x8F = 143
pp424:
    ands      r1, r6, #3
    beq       pp430     @  pc+8+68
    cmp       r1, #1
    beq       pp431     @  pc+8+48
    cmp       r1, #2
    beq       pp432     @  pc+8+24
    cmp       r1, #3
    ldr       r1, [sp, #8]
    bne       pp433     @  pc+8+48
    bic       r1, r1, #2
    orr       r1, r1, #1
    b         pp433     @  pc+8+36
pp432:
    ldr       r1, [sp, #8]
    bic       r1, r1, #1
    orr       r1, r1, #2
    b         pp433     @  pc+8+16
pp431:
    ldr       r1, [sp, #8]
    orr       r1, r1, #3
    b         pp433     @  pc+8+4
pp430:
    ldr       r1, [sp, #8]
    bic       r1, r1, #3
pp433:
    bic       r1, r1, #0x1C  @ 0x1C = 28
    str       r1, [sp, #8]
    cmp       r10, #0x1A  @ 0x1A = 26
    addls     pc, pc, r10, lsl #2
    b         pp437     @  pc+8+240
    b         pp438     @  pc+8+100
    b         pp438     @  pc+8+96
    b         pp440     @  pc+8+172
    b         pp440     @  pc+8+168
    b         pp442     @  pc+8+104
    b         pp442     @  pc+8+100
    b         pp444     @  pc+8+116
    b         pp444     @  pc+8+112
    b         pp446     @  pc+8+168
    b         pp446     @  pc+8+164
    b         pp446     @  pc+8+160
    b         pp446     @  pc+8+156
    b         pp446     @  pc+8+152
    b         pp446     @  pc+8+148
    b         pp452     @  pc+8+104
    b         pp452     @  pc+8+100
    b         pp446     @  pc+8+136
    b         pp446     @  pc+8+132
    b         pp446     @  pc+8+128
    b         pp446     @  pc+8+124
    b         pp446     @  pc+8+120
    b         pp446     @  pc+8+116
    b         pp446     @  pc+8+112
    b         pp446     @  pc+8+108
    b         pp446     @  pc+8+104
    b         pp446     @  pc+8+100
    b         pp464     @  pc+8+116
pp438:
    ldr       lr, [pc, #8]  @  pc+8+8 = 10045B6C
    and       r1, lr, r1
    orr       r1, r1, #0x20  @ 0x20 = 32
    b         pp465     @  pc+8+112
    DCD 0xFFFE003F
pp442:
    ldr       lr, [pc, #8]  @  pc+8+8 = 10045B80
    and       r1, lr, r1
    orr       r1, r1, #0xE0  @ 0xE0 = 224
    b         pp465     @  pc+8+92
    DCD 0xFFFE00FF
pp444:
    ldr       lr, [pc, #8]  @  pc+8+8 = 10045B94
    and       r1, lr, r1
    orr       r1, r1, #0x80  @ 0x80 = 128
    b         pp465     @  pc+8+72
    DCD 0xFFFE009F
pp452:
    ldr       lr, [pc, #8]  @  pc+8+8 = 10045BA8
    and       r1, lr, r1
    orr       r1, r1, #0x60  @ 0x60 = 96
    b         pp465     @  pc+8+52
    DCD 0xFFFE007F
pp440:
    ldr       lr, [pc, #8]  @  pc+8+8 = 10045BBC
    and       r1, lr, r1
    orr       r1, r1, #0x40  @ 0x40 = 64
    b         pp465     @  pc+8+32
    DCD 0xFFFE005F
pp446:
    ldr       lr, [pc, #8]  @  pc+8+8 = 10045BD0
    and       r1, lr, r1
    orr       r1, r1, #1, 24  @ 0x100 = 256
    b         pp465     @  pc+8+12
    DCD 0xFFFE011F
pp464:
    ldr       lr, [pc, #0x204]  @  pc+8+516 = 10045DE0:
    and       r1, lr, r1
    orr       r1, r1, #0x12, 28  @ 0x120 = 288
pp465:
    str       r1, [sp, #8]
pp437:
    cmp       r4, #0
    ldr       r1, [sp, #0xC]  @ 0xC = 12
    mov       lr, #1
    moveq     lr, #0
    eor       lr, lr, r1
    and       lr, lr, #1
    eor       lr, lr, r1
    cmp       r5, #0
    mov       r1, #1
    moveq     r1, #0
    and       r1, r1, #1
    bic       lr, lr, #2
    orr       lr, lr, r1, lsl #1
    cmp       r7, #0
    mov       r1, #1
    moveq     r1, #0
    and       r1, r1, #1
    bic       lr, lr, #4
    orr       lr, lr, r1, lsl #2
    cmp       r8, #0
    mov       r1, #1
    moveq     r1, #0
    and       r1, r1, #1
    bic       lr, lr, #8
    orr       lr, lr, r1, lsl #3
    cmp       r9, #0
    mov       r1, #1
    moveq     r1, #0
    and       r1, r1, #1
    bic       lr, lr, #0x10  @ 0x10 = 16
    orr       r1, lr, r1, lsl #4
    str       r1, [sp, #0xC]  @ 0xC = 12
    ands      r1, r6, #0x80  @ 0x80 = 128
    mov       lr, #1
    ldr       r1, [sp, #0x10]  @ 0x10 = 16
    moveq     lr, #0
    eor       lr, lr, r1
    and       lr, lr, #1
    eor       lr, lr, r1
    ands      r1, r6, #1, 24  @ 0x100 = 256
    mov       r1, #1
    moveq     r1, #0
    and       r1, r1, #1
    bic       lr, lr, #2
    orr       lr, lr, r1, lsl #1
    ands      r1, r6, #2, 24  @ 0x200 = 512
    mov       r1, #1
    moveq     r1, #0
    and       r1, r1, #1
    bic       lr, lr, #4
    orr       lr, lr, r1, lsl #2
    ands      r1, r6, #1, 22  @ 0x400 = 1024
    mov       r1, #1
    moveq     r1, #0
    and       r1, r1, #1
    bic       lr, lr, #8
    orr       lr, lr, r1, lsl #3
    ands      r1, r6, #2, 22  @ 0x800 = 2048
    mov       r1, #1
    moveq     r1, #0
    and       r1, r1, #1
    bic       lr, lr, #0x10  @ 0x10 = 16
    orr       r1, lr, r1, lsl #4
    str       r1, [sp, #0x10]  @ 0x10 = 16
    ands      r1, r6, #4
    mov       lr, #1
    ldr       r1, [sp, #0x14]  @ 0x14 = 20
    moveq     lr, #0
    eor       lr, lr, r1
    and       lr, lr, #1
    eor       lr, lr, r1
    ands      r1, r6, #8
    mov       r1, #1
    moveq     r1, #0
    and       r1, r1, #1
    bic       lr, lr, #2
    orr       lr, lr, r1, lsl #1
    ands      r1, r6, #0x10  @ 0x10 = 16
    mov       r1, #1
    moveq     r1, #0
    and       r1, r1, #1
    bic       lr, lr, #4
    orr       lr, lr, r1, lsl #2
    ands      r1, r6, #0x20  @ 0x20 = 32
    mov       r1, #1
    moveq     r1, #0
    and       r1, r1, #1
    bic       lr, lr, #8
    orr       lr, lr, r1, lsl #3
    ands      r1, r6, #0x40  @ 0x40 = 64
    mov       r1, #1
    moveq     r1, #0
    and       r1, r1, #1
    bic       lr, lr, #0x10  @ 0x10 = 16
    orr       r1, lr, r1, lsl #4
    str       r1, [sp, #0x14]  @ 0x14 = 20
    cmp       r10, #0x1A  @ 0x1A = 26
    bhi       pp471     @  pc+8+980
    add       pc, pc, r10, lsl #2
    b         pp472     @  pc+8+368
    b         pp473     @  pc+8+104
    b         pp474     @  pc+8+124
    b         pp473     @  pc+8+96
    b         pp474     @  pc+8+116
    b         pp473     @  pc+8+88
    b         pp474     @  pc+8+108
    b         pp473     @  pc+8+80
    b         pp474     @  pc+8+100
    b         pp473     @  pc+8+72
    b         pp473     @  pc+8+68
    b         pp473     @  pc+8+64
    b         pp473     @  pc+8+60
    b         pp473     @  pc+8+56
    b         pp486     @  pc+8+96
    b         pp473     @  pc+8+48
    b         pp474     @  pc+8+68
    b         pp474     @  pc+8+64
    b         pp474     @  pc+8+60
    b         pp474     @  pc+8+56
    b         pp474     @  pc+8+52
    b         pp474     @  pc+8+48
    b         pp494     @  pc+8+84
    b         pp495     @  pc+8+100
    b         pp495     @  pc+8+96
    b         pp497     @  pc+8+180
    b         pp497     @  pc+8+176
    b         pp473     @  pc+8+0
    DCD 0xFFFE013F
pp473:
    str       r3, [sp, #0x1C]  @ 0x1C = 28
    ldr       r3, [sp, #0x28]  @ 0x28 = 40
    str       r2, [sp, #0x18]  @ 0x18 = 24
    bic       r3, r3, #0x1C  @ 0x1C = 28
    orr       r3, r3, #3
    b         pp500     @  pc+8+228
pp474:
    ldr       r3, [sp, #0x28]  @ 0x28 = 40
    str       r2, [sp, #0x18]  @ 0x18 = 24
    bic       r3, r3, #0x1E  @ 0x1E = 30
    orr       r3, r3, #1
    b         pp500     @  pc+8+208
pp486:
    ldr       r3, [sp, #0x28]  @ 0x28 = 40
    str       r2, [sp, #0x18]  @ 0x18 = 24
    bic       r3, r3, #0x14  @ 0x14 = 20
    orr       r3, r3, #0xB  @ 0xB = 11
    b         pp500     @  pc+8+188
pp494:
    ldr       r3, [sp, #0x28]  @ 0x28 = 40
    str       r2, [sp, #0x18]  @ 0x18 = 24
    bic       r3, r3, #0xE  @ 0xE = 14
    orr       r3, r3, #0x11  @ 0x11 = 17
    b         pp500     @  pc+8+168
pp495:
    add       r3, sp, #0x90  @ 0x90 = 144
    ldrb      r1, [r3]
    add       r2, sp, #0x18  @ 0x18 = 24
    strb      r1, [r2]
    ldrb      r1, [r3, #1]
    strb      r1, [r2, #1]
    ldrb      r1, [r3, #2]
    strb      r1, [r2, #2]
    ldrb      r1, [r3, #3]
    strb      r1, [r2, #3]
    ldrb      r1, [r3, #4]
    strb      r1, [r2, #4]
    ldrb      r1, [r3, #5]
    strb      r1, [r2, #5]
    ldrb      r1, [r3, #6]
    strb      r1, [r2, #6]
    ldrb      r3, [r3, #7]
    strb      r3, [r2, #7]
    ldr       r3, [sp, #0x28]  @ 0x28 = 40
    bic       r3, r3, #0x12  @ 0x12 = 18
    orr       r3, r3, #0xD  @ 0xD = 13
    b         pp500     @  pc+8+80
pp497:
    add       r3, sp, #0x90  @ 0x90 = 144
    ldrb      r1, [r3]
    add       r2, sp, #0x18  @ 0x18 = 24
    strb      r1, [r2]
    ldrb      r1, [r3, #1]
    strb      r1, [r2, #1]
    ldrb      r1, [r3, #2]
    strb      r1, [r2, #2]
    ldrb      r1, [r3, #3]
    strb      r1, [r2, #3]
    ldrb      r1, [r3, #4]
    strb      r1, [r2, #4]
    ldrb      r1, [r3, #5]
    strb      r1, [r2, #5]
    ldrb      r1, [r3, #6]
    strb      r1, [r2, #6]
    ldrb      r3, [r3, #7]
    strb      r3, [r2, #7]
    ldr       r3, [sp, #0x28]  @ 0x28 = 40
    bic       r3, r3, #0xC  @ 0xC = 12
    orr       r3, r3, #0x13  @ 0x13 = 19
pp500:
    str       r3, [sp, #0x28]  @ 0x28 = 40
pp472:
    add       pc, pc, r10, lsl #2
    b         pp505     @  pc+8+172
    b         pp506     @  pc+8+100
    b         pp507     @  pc+8+128
    b         pp506     @  pc+8+92
    b         pp507     @  pc+8+120
    b         pp506     @  pc+8+84
    b         pp507     @  pc+8+112
    b         pp506     @  pc+8+76
    b         pp507     @  pc+8+104
    b         pp514     @  pc+8+124
    b         pp514     @  pc+8+120
    b         pp514     @  pc+8+116
    b         pp514     @  pc+8+112
    b         pp514     @  pc+8+108
    b         pp514     @  pc+8+104
    b         pp506     @  pc+8+44
    b         pp507     @  pc+8+72
    b         pp514     @  pc+8+92
    b         pp514     @  pc+8+88
    b         pp514     @  pc+8+84
    b         pp514     @  pc+8+80
    b         pp514     @  pc+8+76
    b         pp514     @  pc+8+72
    b         pp514     @  pc+8+68
    b         pp514     @  pc+8+64
    b         pp514     @  pc+8+60
    b         pp514     @  pc+8+56
    b         pp514     @  pc+8+52
pp506:
    ldr       r3, [sp, #0x98]  @ 0x98 = 152
    str       r3, [sp, #0x30]  @ 0x30 = 48
    ldr       r3, [sp, #0x9C]  @ 0x9C = 156
    str       r3, [sp, #0x34]  @ 0x34 = 52
    ldr       r3, [sp, #0x40]  @ 0x40 = 64
    bic       r3, r3, #0x1C  @ 0x1C = 28
    orr       r3, r3, #3
    b         pp533     @  pc+8+28
pp507:
    ldr       r3, [sp, #0x98]  @ 0x98 = 152
    str       r3, [sp, #0x30]  @ 0x30 = 48
    ldr       r3, [sp, #0x40]  @ 0x40 = 64
    bic       r3, r3, #0x1E  @ 0x1E = 30
    orr       r3, r3, #1
    b         pp533     @  pc+8+4
pp514:
    ldr       r3, [sp, #0x40]  @ 0x40 = 64
    bic       r3, r3, #1
pp533:
    str       r3, [sp, #0x40]  @ 0x40 = 64
pp505:
    add       pc, pc, r10, lsl #2
    b         pp471     @  pc+8+408
    b         pp536     @  pc+8+100
    b         pp537     @  pc+8+128
    b         pp536     @  pc+8+92
    b         pp537     @  pc+8+120
    b         pp540     @  pc+8+364
    b         pp540     @  pc+8+360
    b         pp536     @  pc+8+76
    b         pp537     @  pc+8+104
    b         pp544     @  pc+8+124
    b         pp545     @  pc+8+168
    b         pp537     @  pc+8+92
    b         pp547     @  pc+8+136
    b         pp548     @  pc+8+244
    b         pp537     @  pc+8+80
    b         pp536     @  pc+8+44
    b         pp537     @  pc+8+72
    b         pp536     @  pc+8+36
    b         pp544     @  pc+8+88
    b         pp545     @  pc+8+132
    b         pp547     @  pc+8+104
    b         pp548     @  pc+8+212
    b         pp537     @  pc+8+48
    b         pp536     @  pc+8+12
    b         pp537     @  pc+8+40
    b         pp536     @  pc+8+4
    b         pp537     @  pc+8+32
    b         pp536     @  pc+8-4
pp536:
    ldr       r3, [sp, #0xA0]  @ 0xA0 = 160
    str       r3, [sp, #0x48]  @ 0x48 = 72
    ldr       r3, [sp, #0xA4]  @ 0xA4 = 164
    str       r3, [sp, #0x4C]  @ 0x4C = 76
    ldr       r3, [sp, #0x58]  @ 0x58 = 88
    bic       r3, r3, #0x1C  @ 0x1C = 28
    orr       r3, r3, #3
    b         pp563     @  pc+8+264
pp537:
    ldr       r3, [sp, #0xA0]  @ 0xA0 = 160
    str       r3, [sp, #0x48]  @ 0x48 = 72
    ldr       r3, [sp, #0x58]  @ 0x58 = 88
    bic       r3, r3, #0x1E  @ 0x1E = 30
    orr       r3, r3, #1
    b         pp563     @  pc+8+240
pp544:
    ldr       r3, [sp, #0xA0]  @ 0xA0 = 160
    str       r3, [sp, #0x48]  @ 0x48 = 72
    ldr       r3, [sp, #0x58]  @ 0x58 = 88
    bic       r3, r3, #0x14  @ 0x14 = 20
    orr       r3, r3, #0xB  @ 0xB = 11
    b         pp563     @  pc+8+216
pp547:
    ldr       r3, [sp, #0xA0]  @ 0xA0 = 160
    str       r3, [sp, #0x48]  @ 0x48 = 72
    ldr       r3, [sp, #0x58]  @ 0x58 = 88
    bic       r3, r3, #0xE  @ 0xE = 14
    orr       r3, r3, #0x11  @ 0x11 = 17
    b         pp563     @  pc+8+192
pp545:
    add       r3, sp, #0xA0  @ 0xA0 = 160
    ldrb      r1, [r3]
    add       r2, sp, #0x48  @ 0x48 = 72
    strb      r1, [r2]
    ldrb      r1, [r3, #1]
    strb      r1, [r2, #1]
    ldrb      r1, [r3, #2]
    strb      r1, [r2, #2]
    ldrb      r1, [r3, #3]
    strb      r1, [r2, #3]
    ldrb      r1, [r3, #4]
    strb      r1, [r2, #4]
    ldrb      r1, [r3, #5]
    strb      r1, [r2, #5]
    ldrb      r1, [r3, #6]
    strb      r1, [r2, #6]
    ldrb      r3, [r3, #7]
    strb      r3, [r2, #7]
    ldr       r3, [sp, #0x58]  @ 0x58 = 88
    bic       r3, r3, #0x12  @ 0x12 = 18
    orr       r3, r3, #0xD  @ 0xD = 13
    b         pp563     @  pc+8+104
pp548:
    add       r3, sp, #0xA0  @ 0xA0 = 160
    ldrb      r1, [r3]
    add       r2, sp, #0x48  @ 0x48 = 72
    strb      r1, [r2]
    ldrb      r1, [r3, #1]
    strb      r1, [r2, #1]
    ldrb      r1, [r3, #2]
    strb      r1, [r2, #2]
    ldrb      r1, [r3, #3]
    strb      r1, [r2, #3]
    ldrb      r1, [r3, #4]
    strb      r1, [r2, #4]
    ldrb      r1, [r3, #5]
    strb      r1, [r2, #5]
    ldrb      r1, [r3, #6]
    strb      r1, [r2, #6]
    ldrb      r3, [r3, #7]
    strb      r3, [r2, #7]
    ldr       r3, [sp, #0x58]  @ 0x58 = 88
    bic       r3, r3, #0xC  @ 0xC = 12
    orr       r3, r3, #0x13  @ 0x13 = 19
    b         pp563     @  pc+8+16
pp540:
    ldr       r3, [sp, #0xA0]  @ 0xA0 = 160
    str       r3, [sp, #0x48]  @ 0x48 = 72
    ldr       r3, [sp, #0x58]  @ 0x58 = 88
    bic       r3, r3, #8
    orr       r3, r3, #0x17  @ 0x17 = 23
pp563:
    str       r3, [sp, #0x58]  @ 0x58 = 88
pp471:
    add       r3, sp, #0
    ldr       r9, [pc, #0x3C]  @  pc+8+60 = 1004618C
    mov       r2, #1
    mov       r1, #0
    mov       lr, pc
    mov       pc, r9
    ldr       r3, [sp, #8]
    mov       r1, #0
    ands      r0, r3, #3
    beq       pp569     @  pc+8+44
    cmp       r0, #1
    beq       pp570     @  pc+8+32
    cmp       r0, #2
    beq       pp571     @  pc+8+16
    cmp       r0, #3
    bne       pp569     @  pc+8+20
    mov       r1, #1
    b         pp569     @  pc+8+12
    DCD       __fp_error  @0xF000FE38  @ syscall may cause error
pp571:
    mov       r1, #2
    b         pp569     @  pc+8+0
pp570:
    mov       r1, #3
pp569:
    ldr       r2, [sp, #0x10]  @ 0x10 = 16
    mov       r0, #0x80  @ 0x80 = 128
    ands      r3, r2, #1
    moveq     r0, #0
    orr       r1, r0, r1
    ands      r3, r2, #2
    mov       r0, #1, 24  @ 0x100 = 256
    moveq     r0, #0
    orr       r1, r0, r1
    ands      r3, r2, #4
    mov       r0, #2, 24  @ 0x200 = 512
    moveq     r0, #0
    orr       r1, r0, r1
    ands      r3, r2, #8
    mov       r0, #1, 22  @ 0x400 = 1024
    moveq     r0, #0
    orr       r1, r0, r1
    ands      r3, r2, #0x10  @ 0x10 = 16
    mov       r0, #2, 22  @ 0x800 = 2048
    moveq     r0, #0
    orr       r1, r0, r1
    cmp       r10, #0x1A  @ 0x1A = 26
    addls     pc, pc, r10, lsl #2
    b         pp575     @  pc+8+208
    b         pp576     @  pc+8+100
    b         pp577     @  pc+8+192
    b         pp576     @  pc+8+92
    b         pp577     @  pc+8+184
    b         pp577     @  pc+8+180
    b         pp577     @  pc+8+176
    b         pp576     @  pc+8+76
    b         pp577     @  pc+8+168
    b         pp577     @  pc+8+164
    b         pp585     @  pc+8+84
    b         pp577     @  pc+8+156
    b         pp577     @  pc+8+152
    b         pp585     @  pc+8+72
    b         pp577     @  pc+8+144
    b         pp576     @  pc+8+44
    b         pp577     @  pc+8+136
    b         pp576     @  pc+8+36
    b         pp577     @  pc+8+128
    b         pp585     @  pc+8+48
    b         pp577     @  pc+8+120
    b         pp585     @  pc+8+40
    b         pp577     @  pc+8+112
    b         pp576     @  pc+8+12
    b         pp577     @  pc+8+104
    b         pp576     @  pc+8+4
    b         pp577     @  pc+8+96
    b         pp576     @  pc+8-4
pp576:
    ldr       r3, [sp, #0x48]  @ 0x48 = 72
    str       r3, [sp, #0xA0]  @ 0xA0 = 160
    ldr       r3, [sp, #0x4C]  @ 0x4C = 76
    str       r3, [sp, #0xA4]  @ 0xA4 = 164
    b         pp575     @  pc+8+80
pp585:
    add       r3, sp, #0x48  @ 0x48 = 72
    ldrb      r0, [r3]
    add       r2, sp, #0xA0  @ 0xA0 = 160
    strb      r0, [r2]
    ldrb      r0, [r3, #1]
    strb      r0, [r2, #1]
    ldrb      r0, [r3, #2]
    strb      r0, [r2, #2]
    ldrb      r0, [r3, #3]
    strb      r0, [r2, #3]
    ldrb      r0, [r3, #4]
    strb      r0, [r2, #4]
    ldrb      r0, [r3, #5]
    strb      r0, [r2, #5]
    ldrb      r0, [r3, #6]
    strb      r0, [r2, #6]
    ldrb      r3, [r3, #7]
    strb      r3, [r2, #7]
    b         pp575     @  pc+8+4
pp577:
    ldr       r3, [sp, #0x48]  @ 0x48 = 72
    str       r3, [sp, #0xA0]  @ 0xA0 = 160
pp575:
    mov       r0, r11 @ ldr       r0, [r11]
    ldr       r3, [pc, #0x60]  @  pc+8+96 = 1004633C
    and       r3, r3, r0
    orr       r0, r3, r1
    mov       r11, r0 @ str       r0, [r11]
pp428:
    ldr       r0, [sp, #0x88]  @ 0x88 = 136
    add       r3, sp, #0xA0  @ 0xA0 = 160
    ldrb      r1, [r3]
    mov       r2, r0
    strb      r1, [r2]
    ldrb      r1, [r3, #1]
    strb      r1, [r2, #1]
    ldrb      r1, [r3, #2]
    strb      r1, [r2, #2]
    ldrb      r1, [r3, #3]
    strb      r1, [r2, #3]
    ldrb      r1, [r3, #4]
    strb      r1, [r2, #4]
    ldrb      r1, [r3, #5]
    strb      r1, [r2, #5]
    ldrb      r1, [r3, #6]
    strb      r1, [r2, #6]
    ldrb      r3, [r3, #7]
    strb      r3, [r2, #7]
    add       sp, sp, #0x60  @ 0x60 = 96
    ldmia     sp, {r4 - r11, sp, lr}  @ ldmfd
    mov       pc, lr

    DCD 0xFFFFF000
__fp_error:
    mov       pc, lr    @ do nothing

    .ltorg

FUNENTRY(_e2d)
    mov       r3, r1, lsl #17
    mov       r3, r3, lsr #17
    bic       r1, r1, r3

FUNENTRY(__fp_e2d)
    stmdb     sp!, {r10}  @ stmfd
    mov       r10, #0
    bics      r12, r0, r1, lsl #1
    bpl       pp605     @  pc+8+60
    subs      r3, r3, #0xF, 22  @ 0x3C00 = 15360
    bmi       _e2d_ExpUnderflow  @ 100463E4
    addne     r12, r3, #1
    cmpne     r12, #2, 22  @ 0x800 = 2048
    bge       pp606     @  pc+8+68
    movs      r12, r2, lsr #11
    bcs       pp607     @  pc+8+504
    orrs      r6, r6, r2, lsl #21
    orrne     r10, r10, #0x10  @ 0x10 = 16
    orr       r1, r1, r3, lsl #20
    bic       r0, r0, #2, 2  @ 0x80000000 = 2147483648
    orr       r1, r1, r0, lsr #11
    orr       r0, r12, r0, lsl #21
    mov       r3, r10
    ldmia     sp!, {r10}  @ ldmfd
    mov       pc, lr
pp605:
    tst       r1, #1, 2  @ 0x40000000 = 1073741824
    bne       pp608     @  pc+8+396
    and       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    mov       r0, #0
    mov       r3, r10
    ldmia     sp!, {r10}  @ ldmfd
    mov       pc, lr
pp606:
    teq       r3, #0
    beq       _e2d_ExpUnderflow  @ 100463E4
    mov       r10, #0x14  @ 0x14 = 20
    mov       r0, #0
    mvn       r2, #0
    ands      r1, r1, r2, lsl #20
    orr       r1, r1, r2, lsl #20
    bicpl     r1, r1, #2, 2  @ 0x80000000 = 2147483648
    mov       r3, r10
    ldmia     sp!, {r10}  @ ldmfd
    mov       pc, lr

FUNENTRY(_e2d_ExpUnderflow)
    adds      r3, r3, #0x34  @ 0x34 = 52
    beq       pp609     @  pc+8+292
    andmi     r1, r1, #2, 2  @ 0x80000000 = 2147483648
    movmi     r0, #0
    orrmi     r10, r10, #0x18  @ 0x18 = 24
    movmi     r3, r10
    ldmmiia   sp!, {r10}  @ ldmmifd
    movmi     pc, lr
    subs      r3, r3, #0x20  @ 0x20 = 32
    beq       pp610     @  pc+8+112
    blt       pp611     @  pc+8+168
    sub       r12, r3, #1
    orrs      r12, r6, r2, lsl r3
    orrne     r10, r10, #0x18  @ 0x18 = 24
    movs      r12, r2, lsl r3
    bmi       pp612     @  pc+8+24
    rsb       r12, r3, #0x20  @ 0x20 = 32
    orr       r1, r1, r0, lsr r12
    mov       r2, r2, lsr r12
    orr       r0, r2, r0, lsl r3
    mov       r3, r10
    ldmia     sp!, {r10}  @ ldmfd
    mov       pc, lr
pp612:
    orrs      r12, r6, r12, lsl #1
    rsb       r12, r3, #0x20  @ 0x20 = 32
    orr       r1, r1, r0, lsr r12
    mov       r2, r2, lsr r12
    orr       r0, r2, r0, lsl r3
    tsteq     r0, #1
    moveq     r3, r10
    ldmeqia   sp!, {r10}  @ ldmeqfd
    moveq     pc, lr
    adds      r0, r0, #1
    addcs     r1, r1, #1
    tst       r1, #1, 12  @ 0x100000 = 1048576
    bicne     r10, r10, #8
    mov       r3, r10
    ldmia     sp!, {r10}  @ ldmfd
    mov       pc, lr
pp610:
    orrs      r12, r6, r2
    orrne     r10, r10, #0x18  @ 0x18 = 24
    teq       r2, #2, 2  @ 0x80000000 = 2147483648
    movmi     r3, r10
    ldmmiia   sp!, {r10}  @ ldmmifd
    movmi     pc, lr
    tsteq     r0, #1
    moveq     r3, r10
    ldmeqia   sp!, {r10}  @ ldmeqfd
    moveq     pc, lr
    adds      r0, r0, #1
    addcs     r1, r1, #1
    mov       r3, r10
    ldmia     sp!, {r10}  @ ldmfd
    mov       pc, lr
pp611:
    add       r3, r3, #0x20  @ 0x20 = 32
    sub       r12, r3, #0
    orr       r12, r6, r0, lsl r12
    orrs      r12, r12, r2
    orrne     r10, r10, #0x18  @ 0x18 = 24
    movs      r12, r0, lsl r3
    bmi       pp613     @  pc+8+20
    rsb       r12, r3, #0x20  @ 0x20 = 32
    mov       r0, r0, lsr r12
    and       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    mov       r3, r10
    ldmia     sp!, {r10}  @ ldmfd
    mov       pc, lr
pp613:
    teq       r12, #2, 2  @ 0x80000000 = 2147483648
    orreqs    r12, r2, r6
    rsb       r12, r3, #0x20  @ 0x20 = 32
    mov       r0, r0, lsr r12
    tsteq     r0, #1
    addne     r0, r0, #1
    mov       r3, r10
    ldmia     sp!, {r10}  @ ldmfd
    mov       pc, lr
pp609:
    teq       r0, #2, 2  @ 0x80000000 = 2147483648
    teqeq     r2, #0
    moveq     r0, #0
    movne     r0, #1
    orr       r10, r10, #0x18  @ 0x18 = 24
    mov       r3, r10
    ldmia     sp!, {r10}  @ ldmfd
    mov       pc, lr
pp608:
    teq       r0, #0
    movnes    r0, r0, lsl #1
    mvnmi     r1, #0
    movmi     r3, r10
    ldmmiia   sp!, {r10}  @ ldmmifd
    movmi     pc, lr
    teqeq     r2, #0
    movne     r3, r10
    ldmneia   sp!, {r10}  @ ldmnefd
    movne     pc, lr
    and       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    orr       r1, r1, #7, 4  @ 0x70000000 = 1879048192
    orr       r1, r1, #0xFF, 12  @ 0xFF00000 = 267386880
    mov       r3, r10
    ldmia     sp!, {r10}  @ ldmfd
    mov       pc, lr
pp607:
    bic       r0, r0, #2, 2  @ 0x80000000 = 2147483648
    orrs      r12, r6, r2, lsl #21
    orrne     r10, r10, #0x10  @ 0x10 = 16
    mov       r12, r2, lsl #22
    orrs      r12, r12, r6
    and       r12, r1, #2, 2  @ 0x80000000 = 2147483648
    mov       r1, r3, lsl #20
    orr       r1, r1, r0, lsr #11
    mov       r0, r0, lsl #21
    orr       r0, r0, r2, lsr #11
    beq       pp614     @  pc+8+40
    adds      r0, r0, #1
    addcs     r1, r1, #1
    adds      r2, r1, #1, 12  @ 0x100000 = 1048576
    orr       r1, r1, r12
    movpl     r3, r10
    ldmplia   sp!, {r10}  @ ldmplfd
    movpl     pc, lr
    mov       r10, #0x14  @ 0x14 = 20
    mov       r3, r10
    ldmia     sp!, {r10}  @ ldmfd
    mov       pc, lr
pp614:
    tsteq     r0, #1
    orreq     r1, r1, r12
    moveq     r3, r10
    ldmeqia   sp!, {r10}  @ ldmeqfd
    moveq     pc, lr
    adds      r0, r0, #1
    addcs     r1, r1, #1
    adds      r2, r1, #1, 12  @ 0x100000 = 1048576
    orr       r1, r1, r12
    movpl     r3, r10
    ldmplia   sp!, {r10}  @ ldmplfd
    movpl     pc, lr
    mov       r10, #0x14  @ 0x14 = 20
    mov       r3, r10
    ldmia     sp!, {r10}  @ ldmfd
    mov       pc, lr

FUNENTRY(__fp_div_common)
    mov       r8, r1
    mov       r1, r3
    mov       r3, r8
    mov       r8, r0
    mov       r0, r5
    mov       r5, r8
    mov       r8, r2
    mov       r2, r4
    mov       r4, r8

FUNENTRY(__fp_rdv_common)
    bic       r8, r1, #3, 2  @ 0xC0000000 = 3221225472
    bic       r9, r3, #3, 2  @ 0xC0000000 = 3221225472
    eor       r1, r1, r3
    and       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    sub       r3, r9, r8
    add       r3, r3, #0x3F, 24  @ 0x3F00 = 16128
    add       r3, r3, #0xFF  @ 0xFF = 255
pp620:
    stmdb     sp!, {r1, r3, r7, r11, lr}  @ stmfd
    mov       r1, r0, lsr #16
    bic       r7, r0, r1, lsl #16
    mov       r11, r2, lsr #16
    bic       lr, r2, r11, lsl #16
    add       r6, pc, #0xDB, 30  @ 0x36C = 876
    ldrb      r6, [r6, +r1, lsr #8]
    mla       r8, r1, r6, r6
    rsb       r8, r8, #2, 10  @ 0x800000 = 8388608
    mul       r6, r8, r6
    mov       r6, r6, lsr #19
    add       r6, r6, #2
    mov       r8, r0, lsr #13
    mla       r9, r8, r6, r6
    rsb       r9, r9, #2, 4  @ 0x20000000 = 536870912
    mov       r8, r9, lsr #16
    bic       r9, r9, r8, lsl #16
    mul       r2, r9, r6
    mul       r0, r8, r6
    add       r6, r0, r2, lsr #16
    mov       r6, r6, lsr #6
    movs      r5, r5, lsr #1
    movs      r4, r4, rrx
    movcc     r3, #0
    movcs     r3, #2, 2  @ 0x80000000 = 2147483648
    mov       r8, r5, lsr #15
    mul       r9, r6, r8
    mov       r9, r9, lsr #16
    mul       r8, r9, r11
    subs      r4, r4, r8
    mul       r8, r1, r9
    sbc       r5, r5, r8
    mul       r8, r9, lr
    subs      r3, r3, r8, lsl #16
    sbcs      r4, r4, r8, lsr #16
    mul       r8, r9, r7
    subcc     r4, r4, r8, lsl #16
    subcss    r4, r4, r8, lsl #16
    sbc       r5, r5, r8, lsr #16
    mov       r0, r9, lsl #16
    mov       r8, r5, lsr #2
    mul       r9, r6, r8
    mov       r9, r9, lsr #16
    mul       r8, r9, r11
    subs      r3, r3, r8, lsl #19
    sbcs      r4, r4, r8, lsr #13
    mul       r8, r1, r9
    subcc     r4, r4, r8, lsl #19
    subcss    r4, r4, r8, lsl #19
    sbc       r5, r5, r8, lsr #13
    mul       r8, r9, lr
    subs      r3, r3, r8, lsl #3
    sbcs      r4, r4, r8, lsr #29
    mul       r8, r9, r7
    subcc     r4, r4, r8, lsl #3
    subcss    r4, r4, r8, lsl #3
    sbc       r5, r5, r8, lsr #29
    mov       r5, r5, lsl #26
    orr       r5, r5, r4, lsr #6
    mov       r4, r4, lsl #26
    orr       r4, r4, r3, lsr #6
    mov       r3, r3, lsl #26
    add       r0, r0, r9, lsl #3
    ldr       r8, [sp, #0xC]  @ 0xC = 12
    tst       r8, #1
    bne       pp615     @  pc+8+600
    mov       r8, r5, lsr #15
    mul       r9, r6, r8
    mov       r9, r9, lsr #16
    mul       r8, r9, r11
    subs      r4, r4, r8
    mul       r8, r1, r9
    sbc       r5, r5, r8
    mul       r8, r9, lr
    subs      r3, r3, r8, lsl #16
    sbcs      r4, r4, r8, lsr #16
    mul       r8, r9, r7
    subcc     r4, r4, r8, lsl #16
    subcss    r4, r4, r8, lsl #16
    sbc       r5, r5, r8, lsr #16
    mov       r2, r9, lsl #22
    add       r0, r0, r9, lsr #10
    mov       r8, r5, lsr #2
    mul       r9, r6, r8
    mov       r9, r9, lsr #16
    mul       r8, r9, r11
    subs      r3, r3, r8, lsl #19
    sbcs      r4, r4, r8, lsr #13
    mul       r8, r1, r9
    subcc     r4, r4, r8, lsl #19
    subcss    r4, r4, r8, lsl #19
    sbc       r5, r5, r8, lsr #13
    mul       r8, r9, lr
    subs      r3, r3, r8, lsl #3
    sbcs      r4, r4, r8, lsr #29
    mul       r8, r9, r7
    subcc     r4, r4, r8, lsl #3
    subcss    r4, r4, r8, lsl #3
    sbc       r5, r5, r8, lsr #29
    mov       r5, r5, lsl #26
    orr       r5, r5, r4, lsr #6
    mov       r4, r4, lsl #26
    orr       r4, r4, r3, lsr #6
    mov       r3, r3, lsl #26
    adds      r2, r2, r9, lsl #9
    adc       r0, r0, #0
    ldr       r8, [sp, #0xC]  @ 0xC = 12
    tst       r8, #2
    bne       pp616     @  pc+8+256
    mov       r8, r5, lsr #15
    mul       r9, r6, r8
    mov       r9, r9, lsr #16
    mul       r8, r9, r11
    subs      r4, r4, r8
    mul       r8, r1, r9
    sbc       r5, r5, r8
    mul       r8, r9, lr
    subs      r3, r3, r8, lsl #16
    sbcs      r4, r4, r8, lsr #16
    mul       r8, r9, r7
    subcc     r4, r4, r8, lsl #16
    subcss    r4, r4, r8, lsl #16
    sbc       r5, r5, r8, lsr #16
    mov       r5, r5, lsl #14
    orr       r5, r5, r4, lsr #18
    mov       r4, r4, lsl #14
    orr       r4, r4, r3, lsr #18
    mov       r3, r3, lsl #14
    mov       r6, r9, lsl #28
    adds      r2, r2, r9, lsr #4
    adc       r0, r0, #0
    orr       r1, r7, r1, lsl #16
    orr       r7, lr, r11, lsl #16
    mov       lr, #0
    subs      r9, r4, r7
    sbcs      r8, r5, r1
    movcs     r4, r9
    movcs     r5, r8
    adc       lr, lr, lr
    mov       r11, #0
    adds      r3, r3, r3
    adcs      r4, r4, r4
    adcs      r5, r5, r5
    adc       r11, r11, r11
    subs      r9, r4, r7
    sbcs      r8, r5, r1
    sbcs      r11, r11, #0
    movcs     r4, r9
    movcs     r5, r8
    adc       lr, lr, lr
    mov       r11, #0
    adds      r3, r3, r3
    adcs      r4, r4, r4
    adcs      r5, r5, r5
    adc       r11, r11, r11
    subs      r9, r4, r7
    sbcs      r8, r5, r1
    sbcs      r11, r11, #0
    movcs     r4, r9
    movcs     r5, r8
    adc       lr, lr, lr
    orrs      r8, r5, r4
    orrne     r6, r6, #1
    adds      r6, r6, lr, lsl #28
    adcs      r2, r2, #0
    adcs      r0, r0, #0
    ldmmiia   sp!, {r1, r3, r7, r11, lr}  @ ldmmifd
    movmi     pc, lr
    ldmia     sp!, {r1, r3, r7, r11, lr}  @ ldmfd
    adds      r6, r6, r6
    adcs      r2, r2, r2
    adc       r0, r0, r0
    sub       r3, r3, #1
    mov       pc, lr
pp616:
    orr       r1, r7, r1, lsl #16
    orr       r7, lr, r11, lsl #16
    mov       lr, #0
    adds      r3, r3, r3
    adcs      r4, r4, r4
    adc       r5, r5, r5
    subs      r9, r4, r7
    sbcs      r8, r5, r1
    movcs     r4, r9
    movcs     r5, r8
    adc       lr, lr, lr
    mov       r11, #0
    adds      r3, r3, r3
    adcs      r4, r4, r4
    adcs      r5, r5, r5
    adc       r11, r11, r11
    subs      r9, r4, r7
    sbcs      r8, r5, r1
    sbcs      r11, r11, #0
    movcs     r4, r9
    movcs     r5, r8
    adc       lr, lr, lr
    mov       r11, #0
    adds      r3, r3, r3
    adcs      r4, r4, r4
    adcs      r5, r5, r5
    adc       r11, r11, r11
    subs      r9, r4, r7
    sbcs      r8, r5, r1
    sbcs      r11, r11, #0
    movcs     r4, r9
    movcs     r5, r8
    adc       lr, lr, lr
    orr       r6, r5, r4
    adds      r2, r2, lr, lsl #9
    adcs      r0, r0, #0
    ldmmiia   sp!, {r1, r3, r7, r11, lr}  @ ldmmifd
    movmi     pc, lr
    ldmia     sp!, {r1, r3, r7, r11, lr}  @ ldmfd
    adds      r2, r2, r2
    adc       r0, r0, r0
    sub       r3, r3, #1
    mov       pc, lr
pp615:
    orr       r1, r7, r1, lsl #16
    orr       r7, lr, r11, lsl #16
    adds      r3, r3, r3
    adcs      r4, r4, r4
    adc       r5, r5, r5
    subs      r9, r4, r7
    sbcs      r8, r5, r1
    movcs     r4, r9
    movcs     r5, r8
    addcs     r0, r0, #0x20  @ 0x20 = 32
    mov       r11, #0
    adds      r3, r3, r3
    adcs      r4, r4, r4
    adcs      r5, r5, r5
    adc       r11, r11, r11
    subs      r9, r4, r7
    sbcs      r8, r5, r1
    sbcs      r11, r11, #0
    movcs     r4, r9
    movcs     r5, r8
    addcs     r0, r0, #0x10  @ 0x10 = 16
    mov       r11, #0
    adds      r3, r3, r3
    adcs      r4, r4, r4
    adcs      r5, r5, r5
    adc       r11, r11, r11
    subs      r9, r4, r7
    sbcs      r8, r5, r1
    sbcs      r11, r11, #0
    movcs     r4, r9
    movcs     r5, r8
    addcs     r0, r0, #8
    orr       r6, r5, r4
    mov       r2, #0
    teq       r0, #0
    ldmmiia   sp!, {r1, r3, r7, r11, lr}  @ ldmmifd
    movmi     pc, lr
    ldmia     sp!, {r1, r3, r7, r11, lr}  @ ldmfd
    mov       r0, r0, lsl #1
    sub       r3, r3, #1
    mov       pc, lr
    DCD 0x7E7F8080
    DCD 0x7A7B7C7D
    DCD 0x76777879
    DCD 0x73747576
    DCD 0x70717172
    DCD 0x6D6E6E6F
    DCD 0x6A6B6C6C
    DCD 0x6868696A
    DCD 0x65666667
    DCD 0x63636464
    DCD 0x60616162
    DCD 0x5E5F5F60
    DCD 0x5C5D5D5E
    DCD 0x5A5B5B5C
    DCD 0x5859595A
    DCD 0x56575758
    DCD 0x55555556
    DCD 0x53535454
    DCD 0x51525252
    DCD 0x50505051
    DCD 0x4E4F4F4F
    DCD 0x4D4D4D4E
    DCD 0x4B4C4C4C
    DCD 0x4A4A4B4B
    DCD 0x4949494A
    DCD 0x47484848
    DCD 0x46474747
    DCD 0x45454646
    DCD 0x44444445
    DCD 0x43434344
    DCD 0x42424243
    DCD 0x41414142

FUNENTRY(__fp_rdv_uncommon)
    mov       r9, r3, lsl #17
    cmn       r9, #2, 16  @ 0x20000 = 131072
    andcc     r9, r9, r5
    ands      r9, r9, r3, lsl #1
    mov       r8, r1, lsl #17
    cmn       r8, #2, 16  @ 0x20000 = 131072
    andcc     r8, r8, r0
    ands      r8, r8, r1, lsl #1
    bmi       pp617     @  pc+8+128
    tst       r9, #2, 2  @ 0x80000000 = 2147483648
    bne       pp618     @  pc+8+200
    tst       r11, #4
    bne       pp619     @  pc+8+32
    mov       r8, r1
    mov       r1, r3
    mov       r3, r8
    mov       r8, r0
    mov       r0, r5
    mov       r5, r8
    mov       r8, r2
    mov       r2, r4
    mov       r4, r8
pp619:
    ands      r6, r0, r1, lsl #1
    bicmi     r0, r0, #2, 2  @ 0x80000000 = 2147483648
    addmi     r1, r1, #1
    ands      r6, r5, r3, lsl #1
    bicmi     r5, r5, #2, 2  @ 0x80000000 = 2147483648
    addmi     r3, r3, #1
    bic       r8, r1, #3, 2  @ 0xC0000000 = 3221225472
    bic       r9, r3, #3, 2  @ 0xC0000000 = 3221225472
    eor       r1, r1, r3
    and       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    sub       r3, r9, r8
    add       r3, r3, #0x3F, 24  @ 0x3F00 = 16128
    add       r3, r3, #0xFF  @ 0xFF = 255
    stmdb     sp!, {lr}  @ stmfd
    tst       r0, #2, 2  @ 0x80000000 = 2147483648
    bleq      __fp_normalise_op1neg  @ 1004D810
    tst       r5, #2, 2  @ 0x80000000 = 2147483648
    bleq      __fp_normalise_op2  @ 1004D7AC
    ldmia     sp!, {lr}  @ ldmfd
    b         pp620     @  pc+8-1332
pp617:
    tst       r9, #2, 2  @ 0x80000000 = 2147483648
    beq       pp621     @  pc+8+20
    orr       r8, r2, r0, lsl #1
    orr       r8, r8, r4
    orrs      r8, r8, r5, lsl #1
    bne       __fp_convert_NaNs  @ 1004D480
    orr       r1, r1, #1
    mov       pc, lr
pp621:
    orrs      r8, r2, r0, lsl #1
    bne       __fp_convert_NaN_1Of2  @ 1004D4C4
    eor       r8, r1, r3
    and       r8, r8, #2, 2  @ 0x80000000 = 2147483648
    tst       r11, #4
    addeq     r1, pc, #0x50  @ 0x50 = 80
    addne     r1, pc, #0x40  @ 0x40 = 64
    ldmia     r1, {r0 - r2}  @ ldmfd
    orr       r1, r1, r8
    mov       r3, #0
    mov       r6, #0
    mov       pc, lr
pp618:
    orrs      r8, r4, r5, lsl #1
    bne       __fp_convert_NaN_2Of2  @ 1004D4A0
    eor       r8, r1, r3
    and       r8, r8, #2, 2  @ 0x80000000 = 2147483648
    tst       r11, #4
    addne     r1, pc, #0x20  @ 0x20 = 32
    addeq     r1, pc, #0x10  @ 0x10 = 16
    ldmia     r1, {r0 - r2}  @ ldmfd
    orr       r1, r1, r8
    mov       r3, #0
    mov       r6, #0
    mov       pc, lr
    DCD 0x00000000
    DCD 0x00000000
    DCD 0x00000000
    DCD 0x40007FFF
    DCD 0x00000000
    DCD 0x00000000

FUNENTRY(__fp_nonveneer_error)
    mov       r12, r3

FUNENTRY(__fp_exception)
    stmdb     sp!, {lr}  @ stmfd
    tst       r12, #4
    bne       pp622     @  pc+8+28
    tst       r12, #8
    bne       pp623     @  pc+8+28
    tst       r12, #2
    bne       pp624     @  pc+8+36
    tst       r12, #0x10  @ 0x10 = 16
    bne       pp624     @  pc+8+28
    bl        pp626     @  pc+8+224
    b         pp627     @  pc+8+24
pp622:
    bl        pp628     @  pc+8+188
    b         pp627     @  pc+8+16
pp623:
    mov       r0, #0
    mov       r1, #0
    b         pp627     @  pc+8+4
    b         pp627     @  pc+8+0
pp624:
    bl        pp628     @  pc+8+164
pp627:
    ldmia     sp!, {lr}  @ ldmfd
    mov       pc, lr
    andne     r12, r5, r0, ror r3
    andne     r12, r5, r4, ror r3
    ldr       r12, [pc, #0xE0]  @  pc+8+224 = 10046D58
    cmp       r12, #0
    movne     pc, r12
    DCD       0xE6000010  @ DCD Undefined Instruction
    DCD       0x80000200
    DCD       0x616F6C46
    DCD       0x676E6974
    DCD       0x696F5020
    DCD       0x4520746E
    DCD       0x70656378
    DCD       0x6E6F6974
    DCD       0x6E49203A
    DCD       0x696C6176
    DCD       0x704F2064
    DCD       0x74617265
    DCD       0x006E6F69
    DCD       0x80000201
    DCD       0x616F6C46
    DCD       0x676E6974
    DCD       0x696F5020
    DCD       0x4520746E
    DCD       0x70656378
    DCD       0x6E6F6974
    DCD       0x764F203A
    DCD       0x6C667265
    DCD       0x0000776F
    DCD       0x80000202
    DCD       0x616F6C46
    DCD       0x676E6974
    DCD       0x696F5020
    DCD       0x4520746E
    DCD       0x70656378
    DCD       0x6E6F6974
    DCD       0x6944203A
    DCD       0x65646976
    DCD       0x20794220
    DCD       0x6F72655A
    DCD       0x00000000
pp628:
    and       r2, r0, #2, 2  @ 0x80000000 = 2147483648
    tst       r12, #0
    addne     r0, pc, #0x28  @ 0x28 = 40
    ldmneia   r0, {r0, r1}  @ ldmnefd
    ldreq     r0, [pc, #0x28]  @  pc+8+40 = 10046D48
    orr       r0, r0, r2
    b         __fp_return_Inf  @ 1004D968
pp626:
    and       r2, r0, #2, 2  @ 0x80000000 = 2147483648
    tst       r12, #0
    addne     r0, pc, #0x18  @ 0x18 = 24
    ldmneia   r0, {r0, r1}  @ ldmnefd
    ldreq     r0, [pc, #0x18]  @  pc+8+24 = 10046D54
    orr       r0, r0, r2
    b         __fp_return_NaN  @ 1004D900
    DCD 0x7FF00000
    DCD 0x00000000
    DCD 0x7F800000
    DCD 0x7FF00000
    DCD 0x00000001
    DCD 0x7F800001
    DCD 0x00000000

FUNENTRY(__flt_normalise2)
    mov       r0, r0, lsl #8
    mov       r1, r1, lsl #8
    tst       r2, #0xFF, 16  @ 0xFF0000 = 16711680
    bne       pp633     @  pc+8+64
    cmp       r0, #1, 16  @ 0x10000 = 65536
    subcc     r2, r2, #1, 12  @ 0x100000 = 1048576
    movcc     r0, r0, lsl #16
    tst       r0, #0xFF, 8  @ 0xFF000000 = 4278190080
    subeq     r2, r2, #2, 14  @ 0x80000 = 524288
    moveq     r0, r0, lsl #8
    tst       r0, #0xF, 4  @ 0xF0000000 = 4026531840
    subeq     r2, r2, #1, 14  @ 0x40000 = 262144
    moveq     r0, r0, lsl #4
    tst       r0, #3, 2  @ 0xC0000000 = 3221225472
    subeq     r2, r2, #2, 16  @ 0x20000 = 131072
    moveqs    r0, r0, lsl #2
    movpl     r0, r0, lsl #1
    addmi     r2, r2, #1, 16  @ 0x10000 = 65536
    tst       r3, #0xFF, 16  @ 0xFF0000 = 16711680
    orrne     r1, r1, #2, 2  @ 0x80000000 = 2147483648
    movne     pc, r12
pp633:
    orr       r0, r0, #2, 2  @ 0x80000000 = 2147483648
    cmp       r1, #1, 16  @ 0x10000 = 65536
    subcc     r3, r3, #1, 12  @ 0x100000 = 1048576
    movcc     r1, r1, lsl #16
    tst       r1, #0xFF, 8  @ 0xFF000000 = 4278190080
    subeq     r3, r3, #2, 14  @ 0x80000 = 524288
    moveq     r1, r1, lsl #8
    tst       r1, #0xF, 4  @ 0xF0000000 = 4026531840
    subeq     r3, r3, #1, 14  @ 0x40000 = 262144
    moveq     r1, r1, lsl #4
    tst       r1, #3, 2  @ 0xC0000000 = 3221225472
    subeq     r3, r3, #2, 16  @ 0x20000 = 131072
    moveqs    r1, r1, lsl #2
    movpl     r1, r1, lsl #1
    addmi     r3, r3, #1, 16  @ 0x10000 = 65536
    mov       pc, r12

FUNENTRY(__fp_mult_common)
    bic       r8, r1, #3, 2  @ 0xC0000000 = 3221225472
    bic       r9, r3, #3, 2  @ 0xC0000000 = 3221225472
    eor       r1, r1, r3
    and       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    add       r3, r8, r9
    sub       r3, r3, #0x3F, 24  @ 0x3F00 = 16128
    sub       r3, r3, #0xFE  @ 0xFE = 254
pp640:
    teq       r2, #0
    beq       pp634     @  pc+8+380
    teq       r4, #0
    beq       pp635     @  pc+8+252
    stmdb     sp!, {r1, r7, r11, lr}  @ stmfd
    mov       r1, r0, lsr #16
    bic       r7, r0, r1, lsl #16
    mov       r6, r5, lsr #16
    bic       r8, r5, r6, lsl #16
    mul       r9, r1, r6
    mul       r6, r7, r6
    mul       r7, r8, r7
    adds      r7, r7, r6, lsl #16
    adc       r9, r9, r6, lsr #16
    mul       r8, r1, r8
    adds      r7, r7, r8, lsl #16
    adc       r1, r9, r8, lsr #16
    mov       r11, r2, lsr #16
    bic       lr, r2, r11, lsl #16
    mov       r6, r4, lsr #16
    bic       r8, r4, r6, lsl #16
    mul       r9, r11, r6
    mul       r6, lr, r6
    mul       lr, r8, lr
    adds      lr, lr, r6, lsl #16
    adc       r9, r9, r6, lsr #16
    mul       r8, r11, r8
    adds      lr, lr, r8, lsl #16
    adc       r11, r9, r8, lsr #16
    adds      r7, r7, r11
    adc       r1, r1, #0
    adds      r11, r7, lr
    adcs      r7, r7, r1
    adc       r1, r1, #0
    subs      r8, r0, r2
    mov       r0, #0
    mov       r6, #0
    mvncc     r0, r0
    subcc     r6, r5, r4
    subnes    r9, r4, r5
    moveq     r0, #0
    mvncc     r0, r0
    subcc     r6, r6, r8
    mov       r5, r8, lsr #16
    bic       r4, r8, r5, lsl #16
    mov       r8, r9, lsr #16
    bic       r9, r9, r8, lsl #16
    mla       r2, r5, r8, r6
    mul       r8, r4, r8
    mul       r6, r9, r4
    adds      r6, r6, r8, lsl #16
    adc       r2, r2, r8, lsr #16
    mul       r9, r5, r9
    adds      r6, r6, r9, lsl #16
    adc       r2, r2, r9, lsr #16
    adds      r6, r11, r6
    adcs      r2, r7, r2
    adcs      r0, r1, r0
    orr       lr, lr, lr, lsl #2
    orr       r6, r6, lr, lsr #2
    ldmmiia   sp!, {r1, r7, r11, lr}  @ ldmmifd
    movmi     pc, lr
    adds      r6, r6, r6
    adcs      r2, r2, r2
    adc       r0, r0, r0
    sub       r3, r3, #1
    ldmia     sp!, {r1, r7, r11, lr}  @ ldmfd
    mov       pc, lr
pp635:
    mov       r4, r5, lsr #16
    bic       r6, r5, r4, lsl #16
    mov       r8, r0, lsr #16
    bic       r9, r0, r8, lsl #16
    mul       r5, r4, r8
    mul       r8, r6, r8
    mul       r0, r9, r6
    adds      r0, r0, r8, lsl #16
    adc       r5, r5, r8, lsr #16
    mul       r9, r4, r9
    adds      r0, r0, r9, lsl #16
    adc       r5, r5, r9, lsr #16
    mov       r8, r2, lsr #16
    bic       r9, r2, r8, lsl #16
    mul       r2, r4, r8
    mul       r8, r6, r8
    mul       r6, r9, r6
    adds      r6, r6, r8, lsl #16
    adc       r2, r2, r8, lsr #16
    mul       r9, r4, r9
    adds      r6, r6, r9, lsl #16
    adc       r4, r2, r9, lsr #16
    adds      r2, r4, r0
    adcs      r0, r5, #0
    movmi     pc, lr
    adds      r6, r6, r6
    adcs      r2, r2, r2
    adc       r0, r0, r0
    sub       r3, r3, #1
    mov       pc, lr
pp634:
    teq       r4, #0
    beq       pp636     @  pc+8+144
    mov       r2, r0, lsr #16
    bic       r6, r0, r2, lsl #16
    mov       r8, r5, lsr #16
    bic       r9, r5, r8, lsl #16
    mul       r0, r2, r8
    mul       r8, r6, r8
    mul       r5, r9, r6
    adds      r5, r5, r8, lsl #16
    adc       r0, r0, r8, lsr #16
    mul       r9, r2, r9
    adds      r5, r5, r9, lsl #16
    adc       r0, r0, r9, lsr #16
    mov       r8, r4, lsr #16
    bic       r9, r4, r8, lsl #16
    mul       r4, r2, r8
    mul       r8, r6, r8
    mul       r6, r9, r6
    adds      r6, r6, r8, lsl #16
    adc       r4, r4, r8, lsr #16
    mul       r9, r2, r9
    adds      r6, r6, r9, lsl #16
    adc       r2, r4, r9, lsr #16
    adds      r2, r2, r5
    adcs      r0, r0, #0
    movmi     pc, lr
    adds      r6, r6, r6
    adcs      r2, r2, r2
    adc       r0, r0, r0
    sub       r3, r3, #1
    mov       pc, lr

FUNENTRY(__fp_mult_fast_common)
    bic       r8, r1, #3, 2  @ 0xC0000000 = 3221225472
    bic       r9, r3, #3, 2  @ 0xC0000000 = 3221225472
    eor       r1, r1, r3
    and       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    add       r3, r8, r9
    sub       r3, r3, #0x3F, 24  @ 0x3F00 = 16128
    sub       r3, r3, #0xFE  @ 0xFE = 254
pp636:
    mov       r4, r5, lsr #16
    bic       r6, r5, r4, lsl #16
    mov       r8, r0, lsr #16
    bic       r9, r0, r8, lsl #16
    mul       r0, r4, r8
    mul       r8, r6, r8
    mul       r2, r9, r6
    adds      r2, r2, r8, lsl #16
    adc       r0, r0, r8, lsr #16
    mul       r9, r4, r9
    adds      r2, r2, r9, lsl #16
    adcs      r0, r0, r9, lsr #16
    mov       r6, #0
    movmi     pc, lr
    adds      r2, r2, r2
    adc       r0, r0, r0
    sub       r3, r3, #1
    mov       pc, lr

FUNENTRY(__fp_mult_uncommon)
    mov       r9, r3, lsl #17
    cmn       r9, #2, 16  @ 0x20000 = 131072
    andcc     r9, r9, r5
    ands      r9, r9, r3, lsl #1
    mov       r8, r1, lsl #17
    cmn       r8, #2, 16  @ 0x20000 = 131072
    andcc     r8, r8, r0
    ands      r8, r8, r1, lsl #1
    bmi       pp637     @  pc+8+124
    tst       r9, #2, 2  @ 0x80000000 = 2147483648
    bne       pp638     @  pc+8+188
    orrs      r8, r0, r2
    orrnes    r8, r5, r4
    beq       pp639     @  pc+8+76
    ands      r6, r0, r1, lsl #1
    bicmi     r0, r0, #2, 2  @ 0x80000000 = 2147483648
    addmi     r1, r1, #1
    ands      r6, r5, r3, lsl #1
    bicmi     r5, r5, #2, 2  @ 0x80000000 = 2147483648
    addmi     r3, r3, #1
    bic       r8, r1, #3, 2  @ 0xC0000000 = 3221225472
    bic       r9, r3, #3, 2  @ 0xC0000000 = 3221225472
    eor       r1, r1, r3
    and       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    add       r3, r8, r9
    sub       r3, r3, #0x3F, 24  @ 0x3F00 = 16128
    sub       r3, r3, #0xFE  @ 0xFE = 254
    stmdb     sp!, {lr}  @ stmfd
    tst       r0, #2, 2  @ 0x80000000 = 2147483648
    bleq      __fp_normalise_op1  @ 1004D748
    tst       r5, #2, 2  @ 0x80000000 = 2147483648
    bleq      __fp_normalise_op2  @ 1004D7AC
    ldmia     sp!, {lr}  @ ldmfd
    b         pp640     @  pc+8-760
pp639:
    eor       r1, r1, r3
    and       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    mov       r0, #0
    mov       r2, #0
    mov       r3, #0
    mov       r6, #0
    mov       pc, lr
pp637:
    tst       r9, #2, 2  @ 0x80000000 = 2147483648
    beq       pp641     @  pc+8+36
    orr       r8, r2, r0, lsl #1
    orr       r8, r8, r4
    orrs      r8, r8, r5, lsl #1
    bne       __fp_convert_NaNs  @ 1004D480
pp642:
    eor       r8, r1, r3
    and       r8, r8, #2, 2  @ 0x80000000 = 2147483648
    add       r1, pc, #0x44  @ 0x44 = 68
    ldmia     r1, {r0 - r2}  @ ldmfd
    orr       r1, r1, r8
    mov       pc, lr
pp641:
    orrs      r8, r2, r0, lsl #1
    bne       __fp_convert_NaN_1Of2  @ 1004D4C4
    orrs      r8, r5, r4
    bne       pp642     @  pc+8-44
    orr       r1, r1, #1
    mov       pc, lr
pp638:
    orrs      r8, r4, r5, lsl #1
    bne       __fp_convert_NaN_2Of2  @ 1004D4A0
    orrs      r8, r0, r2
    bne       pp642     @  pc+8-68
    orr       r1, r1, #1
    mov       pc, lr
    DCD 0x00000000
    DCD 0x00000000
    DCD 0x00000000
    DCD 0x40007FFF
    DCD 0x00000000
    DCD 0x00000000

//--------------------------------------------------------------
//--------------------------------------------------------------
//--------------------------------------------------------------

FUNENTRY(__fp_convert_NaNs)
    orrs      r8, r2, r0, lsl #1
    beq       __fp_convert_NaN_2Of2  @ 1004D4A0
    tst       r0, #1, 2  @ 0x40000000 = 1073741824
    beq       __fp_convert_NaN_1Of2  @ 1004D4C4
    orrs      r8, r4, r5, lsl #1
    beq       __fp_convert_NaN_1Of2  @ 1004D4C4
    tst       r5, #1, 2  @ 0x40000000 = 1073741824
    bne       __fp_convert_NaN_1Of2  @ 1004D4C4

FUNENTRY(__fp_convert_NaN_2Of2)
    tst       r5, #1, 2  @ 0x40000000 = 1073741824
    beq       pp644     @  pc+8+160
    mov       r1, r3
    mov       r0, r5
    mov       r2, r4
    b         pp645     @  pc+8+16

FUNENTRY(__fp_convert_NaN1)
    tst       r0, #1, 2  @ 0x40000000 = 1073741824
    beq       pp644     @  pc+8+136
    b         pp645     @  pc+8+4

FUNENTRY(__fp_convert_NaN_1Of2)
    tst       r0, #1, 2  @ 0x40000000 = 1073741824
    beq       pp644     @  pc+8+124
pp645:
    tst       r11, #1
    bne       pp649     @  pc+8+88
    tst       r11, #2
    bne       pp650     @  pc+8+48
    tst       r11, #2, 24  @ 0x200 = 512
    bne       pp651     @  pc+8+20
    bic       r8, r1, #3, 2  @ 0xC0000000 = 3221225472
    mov       r9, #0xFF  @ 0xFF = 255
    orr       r9, r9, #0x43, 24  @ 0x4300 = 17152
    cmp       r8, r9
    biccc     r2, r2, #1
    orreq     r2, r2, #1
pp651:
    and       r1, r1, #3, 2  @ 0xC0000000 = 3221225472
    orr       r1, r1, #0xFF  @ 0xFF = 255
    orr       r1, r1, #0x7F, 24  @ 0x7F00 = 32512
    teq       r1, r1
    mov       pc, lr
pp650:
    and       r1, r1, #3, 2  @ 0xC0000000 = 3221225472
    orr       r1, r1, #0xFF  @ 0xFF = 255
    orr       r1, r1, #0x43, 24  @ 0x4300 = 17152
    mov       r2, r2, lsr #11
    mov       r2, r2, lsl #11
    orr       r0, r0, #2, 2  @ 0x80000000 = 2147483648
    teq       r1, r1
    mov       pc, lr
pp649:
    and       r1, r1, #3, 2  @ 0xC0000000 = 3221225472
    orr       r1, r1, #0x7F  @ 0x7F = 127
    orr       r1, r1, #1, 18  @ 0x4000 = 16384
    mov       r2, #0
    bic       r0, r0, #0xFF  @ 0xFF = 255
    orr       r0, r0, #2, 2  @ 0x80000000 = 2147483648
    mov       pc, lr
pp644:
    orr       r1, r1, #1
    mov       pc, lr

FUNENTRY(__fp_norm_denorm_op1)
    and       r1, r1, #2, 2  @ 0x80000000 = 2147483648
    teq       r0, #0
    beq       pp652     @  pc+8+92
    mov       r8, #0
    movs      r9, r0, lsr #16
    moveq     r0, r0, lsl #16
    addeq     r8, r8, #0x10  @ 0x10 = 16
    movs      r9, r0, lsr #24
    moveq     r0, r0, lsl #8
    addeq     r8, r8, #8
    movs      r9, r0, lsr #28
    moveq     r0, r0, lsl #4
    addeq     r8, r8, #4
    movs      r9, r0, lsr #30
    moveq     r0, r0, lsl #2
    addeq     r8, r8, #2
    movs      r9, r0, lsr #31
    moveq     r0, r0, lsl #1
    addeq     r8, r8, #1
    subs      r9, r8, r6, lsr #17
    movhi     r0, r0, lsr r9
    movhi     r8, r6, lsr #17
    rsb       r6, r8, #0x20  @ 0x20 = 32
    orr       r0, r0, r2, lsr r6
    mov       r2, r2, lsl r8
    subcc     r1, r1, r9
    mov       pc, lr
pp652:
    cmp       r6, #1, 10  @ 0x400000 = 4194304
    bcc       pp653     @  pc+8+88
    movs      r0, r2
    moveq     pc, lr
    mov       r2, #0
    mov       r8, #0x20  @ 0x20 = 32
    movs      r9, r0, lsr #16
    moveq     r0, r0, lsl #16
    addeq     r8, r8, #0x10  @ 0x10 = 16
    movs      r9, r0, lsr #24
    moveq     r0, r0, lsl #8
    addeq     r8, r8, #8
    movs      r9, r0, lsr #28
    moveq     r0, r0, lsl #4
    addeq     r8, r8, #4
    movs      r9, r0, lsr #30
    moveq     r0, r0, lsl #2
    addeq     r8, r8, #2
    movs      r9, r0, lsr #31
    moveq     r0, r0, lsl #1
    addeq     r8, r8, #1
    subs      r9, r8, r6, lsr #17
    movhi     r0, r0, lsr r9
    subcc     r1, r1, r9
    mov       pc, lr
pp653:
    mov       r8, r6, lsr #17
    rsb       r9, r8, #0x20  @ 0x20 = 32
    mov       r0, r0, lsl r8
    orr       r0, r0, r2, lsr r9
    mov       r2, r2, lsl r8
    mov       pc, lr

FUNENTRY(__fp_norm_denorm_op2)
    and       r3, r3, #2, 2  @ 0x80000000 = 2147483648
    teq       r5, #0
    beq       pp654     @  pc+8+92
    mov       r8, #0
    movs      r9, r5, lsr #16
    moveq     r5, r5, lsl #16
    addeq     r8, r8, #0x10  @ 0x10 = 16
    movs      r9, r5, lsr #24
    moveq     r5, r5, lsl #8
    addeq     r8, r8, #8
    movs      r9, r5, lsr #28
    moveq     r5, r5, lsl #4
    addeq     r8, r8, #4
    movs      r9, r5, lsr #30
    moveq     r5, r5, lsl #2
    addeq     r8, r8, #2
    movs      r9, r5, lsr #31
    moveq     r5, r5, lsl #1
    addeq     r8, r8, #1
    subs      r9, r8, r6, lsr #17
    movhi     r5, r5, lsr r9
    movhi     r8, r6, lsr #17
    rsb       r6, r8, #0x20  @ 0x20 = 32
    orr       r5, r5, r4, lsr r6
    mov       r4, r4, lsl r8
    subcc     r3, r3, r9
    mov       pc, lr
pp654:
    cmp       r6, #1, 10  @ 0x400000 = 4194304
    bcc       pp655     @  pc+8+88
    movs      r5, r4
    moveq     pc, lr
    mov       r4, #0
    mov       r8, #0x20  @ 0x20 = 32
    movs      r9, r5, lsr #16
    moveq     r5, r5, lsl #16
    addeq     r8, r8, #0x10  @ 0x10 = 16
    movs      r9, r5, lsr #24
    moveq     r5, r5, lsl #8
    addeq     r8, r8, #8
    movs      r9, r5, lsr #28
    moveq     r5, r5, lsl #4
    addeq     r8, r8, #4
    movs      r9, r5, lsr #30
    moveq     r5, r5, lsl #2
    addeq     r8, r8, #2
    movs      r9, r5, lsr #31
    moveq     r5, r5, lsl #1
    addeq     r8, r8, #1
    subs      r9, r8, r6, lsr #17
    movhi     r5, r5, lsr r9
    subcc     r3, r3, r9
    mov       pc, lr
pp655:
    mov       r8, r6, lsr #17
    rsb       r9, r8, #0x20  @ 0x20 = 32
    mov       r5, r5, lsl r8
    orr       r5, r5, r4, lsr r9
    mov       r4, r4, lsl r8
    mov       pc, lr
    mov       r2, #0
    ands      r1, r6, #2, 2  @ 0x80000000 = 2147483648
    rsbne     r0, r6, #0
    moveqs    r0, r6
    moveq     r3, #0
    moveq     pc, lr
    mov       r3, #1, 18  @ 0x4000 = 16384
    orr       r3, r3, #0x1E  @ 0x1E = 30
    mov       r6, #0

FUNENTRY(__fp_normalise_op1)
    teq       r0, #0
    moveq     r0, r2
    moveq     r2, #0
    subeq     r3, r3, #0x20  @ 0x20 = 32
    mov       r8, #0
    movs      r9, r0, lsr #16
    moveq     r0, r0, lsl #16
    addeq     r8, r8, #0x10  @ 0x10 = 16
    movs      r9, r0, lsr #24
    moveq     r0, r0, lsl #8
    addeq     r8, r8, #8
    movs      r9, r0, lsr #28
    moveq     r0, r0, lsl #4
    addeq     r8, r8, #4
    movs      r9, r0, lsr #30
    moveq     r0, r0, lsl #2
    addeq     r8, r8, #2
    movs      r9, r0, lsr #31
    moveq     r0, r0, lsl #1
    addeq     r8, r8, #1
    rsbs      r9, r8, #0x20  @ 0x20 = 32
    orr       r0, r0, r2, lsr r9
    mov       r2, r2, lsl r8
    sub       r3, r3, r8
    mov       pc, lr

FUNENTRY(__fp_normalise_op2)
    teq       r5, #0
    moveq     r5, r4
    moveq     r4, #0
    subeq     r3, r3, #0x20  @ 0x20 = 32
    mov       r8, #0
    movs      r9, r5, lsr #16
    moveq     r5, r5, lsl #16
    addeq     r8, r8, #0x10  @ 0x10 = 16
    movs      r9, r5, lsr #24
    moveq     r5, r5, lsl #8
    addeq     r8, r8, #8
    movs      r9, r5, lsr #28
    moveq     r5, r5, lsl #4
    addeq     r8, r8, #4
    movs      r9, r5, lsr #30
    moveq     r5, r5, lsl #2
    addeq     r8, r8, #2
    movs      r9, r5, lsr #31
    moveq     r5, r5, lsl #1
    addeq     r8, r8, #1
    rsbs      r9, r8, #0x20  @ 0x20 = 32
    orr       r5, r5, r4, lsr r9
    mov       r4, r4, lsl r8
    sub       r3, r3, r8
    mov       pc, lr

FUNENTRY(__fp_normalise_op1neg)
    teq       r0, #0
    moveq     r0, r2
    moveq     r2, #0
    addeq     r3, r3, #0x20  @ 0x20 = 32
    mov       r8, #0
    movs      r9, r0, lsr #16
    moveq     r0, r0, lsl #16
    addeq     r8, r8, #0x10  @ 0x10 = 16
    movs      r9, r0, lsr #24
    moveq     r0, r0, lsl #8
    addeq     r8, r8, #8
    movs      r9, r0, lsr #28
    moveq     r0, r0, lsl #4
    addeq     r8, r8, #4
    movs      r9, r0, lsr #30
    moveq     r0, r0, lsl #2
    addeq     r8, r8, #2
    movs      r9, r0, lsr #31
    moveq     r0, r0, lsl #1
    addeq     r8, r8, #1
    rsbs      r9, r8, #0x20  @ 0x20 = 32
    orr       r0, r0, r2, lsr r9
    mov       r2, r2, lsl r8
    add       r3, r3, r8
    mov       pc, lr
    DCD 0x00000000
    DCD 0x00000000
    DCD 0x00000000
    DCD 0x40007FFF
    DCD 0x00000000
    DCD 0x00000000

FUNENTRY(__fp_fcheck_NaN2)
    mov       r3, #1, 8  @ 0x1000000 = 16777216
    cmn       r3, r0, lsl #1
    bls       pp656     @  pc+8+12
    tst       r0, #1, 10  @ 0x400000 = 4194304
    beq       __fp_exception  @ 10046C18
    cmn       r3, r1, lsl #1
    bls       __fp_return_NaN  @ 1004D900
pp656:
    mov       r0, r1
    tst       r0, #1, 10  @ 0x400000 = 4194304
    bne       __fp_return_NaN  @ 1004D900
    b         __fp_exception  @ 10046C18

FUNENTRY(__fp_dcheck_NaN2)
    stmdb     sp!, {r12}  @ stmfd
    mov       r12, #2, 12  @ 0x200000 = 2097152
    cmn       r12, r1, lsl #1
    cmpeq     r0, #0
    bls       pp657     @  pc+8+24
    tst       r1, #2, 14  @ 0x80000 = 524288
    ldmeqia   sp!, {r12}  @ ldmeqfd
    beq       __fp_exception  @ 10046C18
    cmn       r12, r3, lsl #1
    cmpeq     r2, #0
    ldmlsia   sp!, {r12}  @ ldmlsfd
    bls       __fp_return_NaN  @ 1004D900
pp657:
    ldmia     sp!, {r12}  @ ldmfd
    mov       r1, r3
    mov       r0, r2
    tst       r1, #2, 14  @ 0x80000 = 524288
    bne       __fp_return_NaN  @ 1004D900
    b         __fp_exception  @ 10046C18

FUNENTRY(__fp_return_NaN)
    mov       pc, lr
    mov       r0, #1
    cmp       r0, #0
    mov       pc, lr
    mov       r0, #0
    cmp       r0, #1
    mov       pc, lr
    movs      r0, #1
    mov       pc, lr
    mov       r0, #1
    mov       pc, lr
    mov       r0, #0
    mov       r1, #0
    mov       pc, lr
    mov       r2, r0
    tst       r12, #0
    mvneq     r0, #2, 2  @ 0x80000000 = 2147483648
    mvnne     r0, #0
    mvnne     r1, #2, 2  @ 0x80000000 = 2147483648
    tst       r2, #2, 2  @ 0x80000000 = 2147483648
    mvnne     r0, r0
    mvnne     r1, r1
    mov       pc, lr
    mvn       r0, #0
    mvn       r1, #0
    mov       pc, lr

FUNENTRY(__fp_return_Inf)
    mov       pc, lr

.end
